В 2D-платформерной игре на основе физики, в которой есть лестницы, как вы определяете, вызван ли игрок движением вверх прыжком или он поднимается по лестнице, так что вы знаете, какую анимацию играть?
И вообще, очевидно, что вектор направления не достаточен для определения анимации для воспроизведения: как вы также определяете причину движения (чтобы вы знали, какой правильный спрайт использовать)?
physics
sprites
movement
platformer
Пол Манта
источник
источник
Ответы:
У меня регулярно возникают проблемы с личной логикой, которые вы, похоже, здесь выражаете. Дело в том, что иногда вы смотрите на логику и программирование в совершенно неверном направлении. В этом случае вы, похоже, не понимаете, что с самого начала вы знаете, что происходит, из-за логического кода. Вы должны уже знать, программно говоря, находится ли он на лестнице или нет.
Подумайте об этом (как я уже сказал, я часто эта проблема). Игры логика должна знать, что ты на лестнице, предполагая, что вы быть умным программистом. Для лучшего объяснения, у меня есть тип архива файла, и впустую около часа дня, пытаясь выяснить, как получить размер данных, и я ни разу не остановился, чтобы думать, что, когда я загружаю в файле, я теперь знать его размер: P.
Причина, почему это относится так исключительно, является то, что вы смотрите на это как «Теперь, когда я нахожусь в воздухе, как я полагаю, если я нахожусь на лестнице или прыжки?» ... Когда вы должны действительно думаю, что «я собираюсь получить в воздухе, а какой метод FIRST, так что я могу использовать его для анимации использовать.»
источник
OnJump()
измените своеjumping
логическое значение на истинное, а затем, если вы находитесь в воздухе иjumping
ложно, то вы либо падаете, либо на лестнице и т. Д.Физическая система не знает и не заботится, почему игрок движется в определенном направлении. Это ваша игра, которая вызвала систему физики, чтобы переместить игрок, что путь, и, следовательно, несет ответственность за свою игру, чтобы следить за этим. Лицо, игрок должен иметь какое-то состояние на нем, что покажет, если это прыжки, лазание, бег и т.д. Вы не должны пытаться понять это на основании того, что случилось с системой физики.
источник
Кажется, что любое событие, которое запускается при столкновении, которое устанавливает вертикальную скорость игроков, также может быть использовано для установки флага, указывающего, какую анимацию использовать.
Если вы используете стороннюю библиотеку, которая слишком ограничена информацией, которую она предоставляет вам, можно будет окружить лестницу прямоугольником, и если игрок движется вверх и содержится в этом прямоугольнике, тогда выполните анимацию восхождения.
источник
При установке скорости перехода также установить состояние символов в STATE_JUMPING. Делая это, вы всегда знаете, в каком состоянии игрок находится в и может действовать соответствующим образом, проверив состояние игроков.
источник