Сплэш от взрыва
|
|
Badheard | Дата: Понедельник, 12 Ноября 2012, 20:43 | Сообщение # 1 |
был не раз
Сейчас нет на сайте
| Вопрос: как сделать более-менее реалистичную взрывную волну от попадания ракеты в поверхность, чтобы была зависимость дальности отлета игрока от расстояния до эпицентра взрыва. Если простым языком, хочу реализовать рокетджамп как в кваке только в 2д платформере.
|
|
| |
hero564 | Дата: Понедельник, 12 Ноября 2012, 21:49 | Сообщение # 2 |
Made in Ukraine
Сейчас нет на сайте
| Badheard, не знаю как на конструкте, но на гм это можно реализовать по такой схеме:
1)во время взрыва расчитываешь расстояние от игрока до точки взрыва 2) если расстояние меньше радиуса взрывной волны то устанавливаешь направление движения игрока противоположное до точки взрыва(вычитаешь 180 градусов) и устанавливаешь движения игрока скорость так:
Quote speed = (n)*(range/range_boom) speed- скорость игрока n - любое число значение которого будет влиять на силу отталкивания range - расстояние игрока до точки взрыва range_boom - максимальный радиус взрыва
Сообщение отредактировал hero564 - Понедельник, 12 Ноября 2012, 22:07 |
|
| |
DimOk | Дата: Понедельник, 12 Ноября 2012, 22:18 | Сообщение # 3 |
ONG studio
Сейчас нет на сайте
| снова Гмакер со своим Просто создаём частицы (particles), настраиваем их по-вкусу и создаём собития типа таких: Code при соприкосновении ракеты с твёрдым>>ракета спавнит частицы и удаляется
Активно пользуюсь Godot Engine
|
|
| |
XeoDoz | Дата: Понедельник, 12 Ноября 2012, 22:47 | Сообщение # 4 |
XeoDoz Games
Сейчас нет на сайте
| Quote (DimOk) Просто создаём частицы (particles), настраиваем их по-вкусу и создаём собития типа таких: Хотелось бы добавить на всякий случай, что если хочешь чтоб от этого сплеша был урон врагам, то создай по всему полю пустые спрайты и в событии укажи Code при соприкосновению рокеты с поверхностью невидимого спрайта>>ракета спавнит частицы, снимает жизни(или убивает врагов) и удаляется. это я просто на всякий случай
Ехал Falco через Falco, видит Falco в реке Falco, сунул Falco руку в Falco, Falco Falco Falco Falco Очень рад плюсеГгам в репу
|
|
| |
Virtualcreature | Дата: Понедельник, 12 Ноября 2012, 23:14 | Сообщение # 5 |
постоянный участник
Сейчас нет на сайте
| основать надо на физике или на платформере? - если физика (на сколько помню) add force towards position (позиция взрыва и расстояние поделенное на какое-то число (определить лучше самому) также будет плюсом ограничить расстояние от взрыва (If расстояние между взрывом и объектом менее 50px)
в платформере нужно отделить реакции, на 1) реагировать ли вообще путем реакции по Overlappingat offset 2) жить или не жить нужно ограничить реакцию по вертикали (Y) относительно игрока (дабы попадание ракетой в голову не было рокетджампом) (BoomY-PlayerY) и сделать реакцию где - то между 0 и 50 -CMEPTb!(если разница X координат меньше 50, (если что)) !а на -10 и до +100 Прыжок на фиксированное количество пикселов вверх.(или дать вычисления компьютеру разбив реакцию на [-10 до 0 фиксированная величина, далее - вычисления) 3) Куда летим-то? найти расстояния в пикселах по горизонтали (BoomX-PlayerX)на основе этого числа задать ускорение по оси X(отрицательное - влево, положительное - вправо.)
В общем все можно уместить в комманды : Code Boom> Overlapping at offset 100 /Boom> Combare y position> greater or equival Player y. //вычисление урона. + импульс для подкидывания бездыханного тела ( по желанию ) /Boom> Combare y position> less than Player y. ///set X Component of Motion/BoomX-PlayerX (Туда - Же)///Set Y Component of motion/PlayerY-BoomY (Далее делим или Умножаем для адекватного эффекта, Добовляем урон игроку и наслаждемся!) Теперь по врагам
Коллизии лучше устраивать при контакте с врагом (Можно сильно сэкономить нервы добавив анимацию "Разорваный Враг" (прямой удар) и "Контуженый враг" (если враг достаточно близко, чтобы летать , но далеко, чтобы Умереть) Просто добавь скрипт, заменяющий задетых врагов на контуженных и подкинь их пойдя от противного рокетджампу - Враг> Overlapping at offset 100 /Враг> Combare y position> less than Boom y. ///set X Component of Motion/ BoomX - ВрагX Set Y Component of motion (Надеюсь дальше поймешь)
Добавь еще одну особенность - Ракета при оверлапе более Ширины экрана (а возможно чуть меньше) Должна взрываться (и эффектней, и понятней, и никаких пустых спрайтов)
Кстати Boom-ом можно прозвать и Эммитер партиклей, хотя я бы лучше сделал так :
Ракета врезается > Партикли + Герерируется Boom (как прозрачный спрайт) существует пару милисекунд и умирает выпуская еще одну группу партиклей (а можно еще и частиц и подчиненных физике эммиттеров партиклей (Куски металла и какие - нибудь горящие куски топлива.
Если это не то, что вы хотели или я где-то допустил ошибку (Или объяснил неправильно, например) укажите Please на ошибки, Буду рад их исправить.
|
|
| |
DimOk | Дата: Понедельник, 12 Ноября 2012, 23:40 | Сообщение # 6 |
ONG studio
Сейчас нет на сайте
| Quote (XeoDoz) то создай по всему полю пустые спрайты и в событии укажи хватит одного который то же будет спавнится вместе с частицами
Активно пользуюсь Godot Engine
|
|
| |
Badheard | Дата: Вторник, 13 Ноября 2012, 15:38 | Сообщение # 7 |
был не раз
Сейчас нет на сайте
| При чем тут частицы? Читайте пост полностью. hero564, Virtualcreature, спасибо за наводку, но видать без физики нормально данную фишку не реализовать.
|
|
| |
DimOk | Дата: Вторник, 13 Ноября 2012, 16:18 | Сообщение # 8 |
ONG studio
Сейчас нет на сайте
| Ты спросил про взрывную волну, а частицы к волне тоже относятся
Активно пользуюсь Godot Engine
|
|
| |
Virtualcreature | Дата: Среда, 14 Ноября 2012, 01:08 | Сообщение # 9 |
постоянный участник
Сейчас нет на сайте
| Badheard, ты очень невнимательно прочитал мой пост Пример (Исходник) Все очень даже работает, Пусть и угловато(в этом виновата моя лень) - но это просто исправить, все упирается в математику, плюс вычисления ведутся по квадрату (взрыв размеров 150*200 PX) хочешь вычисления по овалу - совмести в вычислениях удара оси X\Y (зависимость силы вертикального удара от расстояния по горизонтали) - всё это всего лишь математика. также, подсчитай сам, какие границы активности у взрыва (дабы он не примагничивал игрока)
Сможете сами доработать, или вам помочь?
Сообщение отредактировал Virtualcreature - Среда, 14 Ноября 2012, 02:33 |
|
| |