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