Пятница, 04 Октября 2024, 00:03

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Сплэш от взрыва
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
Сейчас нет на сайте
снова Гмакер со своим prof
Просто создаём частицы (particles), настраиваем их по-вкусу
и создаём собития типа таких:
Code
при соприкосновении ракеты с твёрдым>>ракета спавнит частицы и удаляется


Активно пользуюсь Godot Engine
XeoDozДата: Понедельник, 12 Ноября 2012, 22:47 | Сообщение # 4
XeoDoz Games
Сейчас нет на сайте
Quote (DimOk)
Просто создаём частицы (particles), настраиваем их по-вкусу
и создаём собития типа таких:

Хотелось бы добавить на всякий случай, что если хочешь чтоб от этого сплеша был урон врагам, то создай по всему полю пустые спрайты и в событии укажи
Code
при соприкосновению рокеты с поверхностью невидимого спрайта>>ракета спавнит частицы, снимает жизни(или убивает врагов) и удаляется.

это я просто на всякий случай smile



Ехал 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 (Надеюсь дальше поймешь)

Добавь еще одну особенность - Ракета при оверлапе более Ширины экрана (а возможно чуть меньше) Должна взрываться (и эффектней, и понятней, и никаких пустых спрайтов) biggrin

Кстати 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
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг