Комментарии 18
С клавишами пока не исправленный глюк. Иногда нужно всё удалить и пересоздать. Багрепорт писал на почту пока еще не было открытого гита, но до сих пор повторяется.
+1
Великолепно!
Огромнейшее спасибо за статью!
Есть еще куча вопросов, но я боюсь показаться очень глупым, если их задам, поэтому попозже и через лс.
А до тех пор только один вопрос.
Если задуматься — то возможно ли сделать на этом что-то файтингообразное в перспективе? Имеются ли у GoDot какие-то возможности, связанные с взаимодействиями двух динамических полигонов на экране друг с другом?)
Огромнейшее спасибо за статью!
Есть еще куча вопросов, но я боюсь показаться очень глупым, если их задам, поэтому попозже и через лс.
А до тех пор только один вопрос.
Если задуматься — то возможно ли сделать на этом что-то файтингообразное в перспективе? Имеются ли у GoDot какие-то возможности, связанные с взаимодействиями двух динамических полигонов на экране друг с другом?)
+1
Сделать возможно, но нужно самому высчитывать удары с помощью скриптов.
0
зачем?
Если (проверка пересечения хитбоксов а и б), то объект_а -%ХП.
разве нет?
Если (проверка пересечения хитбоксов а и б), то объект_а -%ХП.
разве нет?
0
Я бы в простейшем случае (представляю МК1) просто проверял бы координаты объектов и в зависимости от координат, того какой удар произведён, нажат ли блок рассчитывал бы потерю ХП. Как тут без скриптов — даже и не знаю, проверку пересечения чего-либо и потеря ХП — тоже без скрипта не сделаешь. Хотя может я не правильно понимаю вопрос.
0
я к тому, что вот к примеру на as банальная проверка пересечения хитбоксов писалась в 3-4 строчки. Имхо, куда проще, чем пересчет координат. Просто хотелось узнать, как подобная функция реализована здесь)
0
ну пересечение хитбоксов — это тоже банальная проверка координат, поняв как два объекта расположены друг относительно друга можно довольно просто (те же пару строк) вычислять удары ногами, руками, с прыжка и подката.
0
*очень и очень сильно тупит*
Можно для особо одаренных под ночь на примере что-нибудь, если вас не затруднит?) К примеру хай-панч)
Можно для особо одаренных под ночь на примере что-нибудь, если вас не затруднит?) К примеру хай-панч)
0
алгоритмом:
1) получаем координаты бойцов (xi, yi)
2) получаем текущие действия
3) если действие одного из бойцов хай панч (пусть для определённости бьёт первый) и расстояние abs(x1-x2) <= HIGH_PUNCH_DIST (они достаточно близко по горизонтали чтобы удар попал) а также y1<=y2 (второй не присел и первый не подпрыгнул а значит не промазал) то
а) если действие второго блок — реагируем на блок
b) если действие второго не блок — считаем удар
аналогично для остальных ударов. регулируем константы NAME_PUNCH_DIST чтобы это менее походило на бесконтактное карате и удары руками-ногами как-то отличались.
1) получаем координаты бойцов (xi, yi)
2) получаем текущие действия
3) если действие одного из бойцов хай панч (пусть для определённости бьёт первый) и расстояние abs(x1-x2) <= HIGH_PUNCH_DIST (они достаточно близко по горизонтали чтобы удар попал) а также y1<=y2 (второй не присел и первый не подпрыгнул а значит не промазал) то
а) если действие второго блок — реагируем на блок
b) если действие второго не блок — считаем удар
аналогично для остальных ударов. регулируем константы NAME_PUNCH_DIST чтобы это менее походило на бесконтактное карате и удары руками-ногами как-то отличались.
+1
Как все оказывается просто. Спасибо)
Я почему-то зациклился на костях и куклах и мой скудный разум на тот момент подумал, что имеется в виду координата крайнего пикселя в руке на момент удара.
Я почему-то зациклился на костях и куклах и мой скудный разум на тот момент подумал, что имеется в виду координата крайнего пикселя в руке на момент удара.
0
Конечно можно. В следующей статье я буду разбирать взаимодействие игровых персонажей между собой. Разберем привязку клавиш ударов ближнего и дальнего боя. Ну и как и обещал — будет подробный рассказ про TileSets. Будем рисовать сами. Точнее рисовать буду я. Но как обычно всё будет доступно в конце урока для скачивания. Так что ненадолго беру небольшой перерыв, и сажусь за написание следующей части.
+1
для прыжка можно пользоваться кубической интерполяцией вместо квадратной, чтобы не ставить точки вручную.
анимация на 1 кадр с петлёй — это как то странно, можно просто пользоваться методом set_frame класса Sprite.
анимация на 1 кадр с петлёй — это как то странно, можно просто пользоваться методом set_frame класса Sprite.
0
Спасибо за отличные статьи. Нет ли планов о продолжении?
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Публикации
Изменить настройки темы
Основы создания 2D персонажа в Godot. Часть 2: компилирование шаблонов, немного о GDScript, движение и анимация героя