Всем добрый вечер. Наступают выходные, а значит я опять на кочерге и самое время продолжить
Godot. Путь Алкаша. Рейкасты
Пока шел домой с работы, столько мыслей было в голове, а сел за комп и пустота, зовущая в доту играть)
Ну лиха беда - начало. В прошлом посте, закончил на том, что враги определяют край платформы или стенки и при касании разворачиваются, теперь надо сделать чтобы они могли прыгать.
Изобретать ничего не буду, все согласно замечательному напутствию Godot Engine. Библиотека новичка
учимся работать с документацией.
https://docs.godotengine.org/en/stable/tutorials/physics/usi...
Так и сделаю, разве что условие для прыжка будет не Input, а столкновение с препятствием.
Ну проверим, что получилось.
Теперь быстренько подправим сцену вражины, самым наверное простым способом, чтобы определять, может он запрыгнуть или нет.
Теперь надо поменять условия для прыжка, сейчас сделаем только чтобы запрыгивал на допустимое препятствие, спускаться он и так уже умеет.
По идее сейчас бы самое хорошее время было написать блоксхему, как и что когда должно прыгать, но быстро меня укачало сегодня, так словами постараюсь) Хотя уже и словами тяжело.
Начнем с базы.
Если подошли к краю и не можем упасть, разворачиваемся.
Если подошли к стенке и не можем перепрыгнуть, разворачиваемся
Если подошли к краю и можем упасть, падаем.
Если подошли к стенке и можем перепрыгнуть, прыгаем.
И все это мы проверяем, если мы сейчас уже не в прыжке. Согласен сложная схема, но она зато очевидная, для скорости самое оно.
Блин я даже сделал, не так как описал, то есть я понимаю, что это не хорошо, сам не люблю множественные вложения If, но я прирожденный гавнокодер, я даже описать не могу, они такие конструкции сами складываются, особенно после полбутылочки водочки и 0.5 пива. Скорость прыжка тоже увеличил. Иначе малохольный краб не дотягивал по высоте)
Ну вот в целом все работает, тут огромный просто для улучшения, как минимум это выставление рейкаста для проверки возможности прыжка, по высоте прыжка для краба. Это прыжок с максимально возможной дистанции, чтобы не обтираться об стенку, прыжок на сложные конструкции с неквадратной формой. Возможность прыгать на двигающуюся платформу с упреждением и многое, многое другое. Для все этого, очень пригодятся рейкасты, как одно из наиболее простых средств, наколхозить конечно можно много всякого разного, но с ними, как видите все очень просто и кода, минимум.
Ещё раз тему рейкастов затрону в процессе доделки лазерного прицела, все остальное уже будет как сопуствующее, к обещанному опенсорсному шаблону платформера, ну возможно что-то напишу в процессе его разработки)
Спасибо всем за внимание, можете пинать, можете не пинать. Все одно что-нибудь ещё напишу.
Всем Godot.
UPD @xenofob, задал вопрос, мол кубик на который прыгает краб, выглядит словно через него можно пройти. Это мой косяк, как человека, вообще не способного к красивому или гармоничному, я просто выбрал любой квадратный тайл для примера) у него тоже есть область коллизии)
Визуально согласен, что это не читается)