Pull to refresh

Comments 18

С клавишами пока не исправленный глюк. Иногда нужно всё удалить и пересоздать. Багрепорт писал на почту пока еще не было открытого гита, но до сих пор повторяется.
Великолепно!
Огромнейшее спасибо за статью!
Есть еще куча вопросов, но я боюсь показаться очень глупым, если их задам, поэтому попозже и через лс.

А до тех пор только один вопрос.
Если задуматься — то возможно ли сделать на этом что-то файтингообразное в перспективе? Имеются ли у GoDot какие-то возможности, связанные с взаимодействиями двух динамических полигонов на экране друг с другом?)
Сделать возможно, но нужно самому высчитывать удары с помощью скриптов.
зачем?

Если (проверка пересечения хитбоксов а и б), то объект_а -%ХП.

разве нет?
Я бы в простейшем случае (представляю МК1) просто проверял бы координаты объектов и в зависимости от координат, того какой удар произведён, нажат ли блок рассчитывал бы потерю ХП. Как тут без скриптов — даже и не знаю, проверку пересечения чего-либо и потеря ХП — тоже без скрипта не сделаешь. Хотя может я не правильно понимаю вопрос.
я к тому, что вот к примеру на as банальная проверка пересечения хитбоксов писалась в 3-4 строчки. Имхо, куда проще, чем пересчет координат. Просто хотелось узнать, как подобная функция реализована здесь)
ну пересечение хитбоксов — это тоже банальная проверка координат, поняв как два объекта расположены друг относительно друга можно довольно просто (те же пару строк) вычислять удары ногами, руками, с прыжка и подката.
*очень и очень сильно тупит*
Можно для особо одаренных под ночь на примере что-нибудь, если вас не затруднит?) К примеру хай-панч)
алгоритмом:

1) получаем координаты бойцов (xi, yi)
2) получаем текущие действия
3) если действие одного из бойцов хай панч (пусть для определённости бьёт первый) и расстояние abs(x1-x2) <= HIGH_PUNCH_DIST (они достаточно близко по горизонтали чтобы удар попал) а также y1<=y2 (второй не присел и первый не подпрыгнул а значит не промазал) то
а) если действие второго блок — реагируем на блок
b) если действие второго не блок — считаем удар

аналогично для остальных ударов. регулируем константы NAME_PUNCH_DIST чтобы это менее походило на бесконтактное карате и удары руками-ногами как-то отличались.
Как все оказывается просто. Спасибо)

Я почему-то зациклился на костях и куклах и мой скудный разум на тот момент подумал, что имеется в виду координата крайнего пикселя в руке на момент удара.

Была когда-то славная игра регдол файтинг, там действительно так просто не пройдёт и нужны колижн детекторы в разных частях тела, так что не надо на себя наговаривать.
Пожалуй, вы правы.)
Интересно, а на дроид\айось есть какой-нибудь аналог того самого регдола? По-моему была бы отличная убивалка времени и генератор фана!
для дроида точно есть, а для иос не знаю, не фанат яблок.
Конечно можно. В следующей статье я буду разбирать взаимодействие игровых персонажей между собой. Разберем привязку клавиш ударов ближнего и дальнего боя. Ну и как и обещал — будет подробный рассказ про TileSets. Будем рисовать сами. Точнее рисовать буду я. Но как обычно всё будет доступно в конце урока для скачивания. Так что ненадолго беру небольшой перерыв, и сажусь за написание следующей части.
Очень и очень ждем всей командой!)
для прыжка можно пользоваться кубической интерполяцией вместо квадратной, чтобы не ставить точки вручную.

анимация на 1 кадр с петлёй — это как то странно, можно просто пользоваться методом set_frame класса Sprite.
Спасибо за отличные статьи. Нет ли планов о продолжении?
Внезапно зашёл на habr, а мне пишут :)
Спасибо за комментарий, они действительно важны для меня. Без иронии.
Планы есть. Их много. Но я жду, когда допилят Godot 3 до нормального состояния.
Ну и опять же — нужно время на это всё.
А его в данный момент :(
Sign up to leave a comment.

Articles