Я строю 2D бесконечный бегун. В игре персонаж прыгает от столба к столбу, и столбы генерируются случайным образом. У меня это работает. Но как определить, попал ли персонаж в столб и упал ли он в пропасть между столбами? Столб обыкновенный прямоугольной формы.
12
Ответы:
Добавьте прямоугольную область в нижней части уровня, ниже минимально допустимой высоты платформы. Если игрок пересек этот регион, он упал с платформы.
источник
if (playerPos.x < minHeight)
?Если ваша игра прокручивается только по горизонтали, вы можете проверить, находится ли вертикальная позиция персонажа ниже нижнего края сцены.
Если ваша игра также прокручивается по вертикали (возможно, вверх), вы можете проверить, не упал ли игрок ниже нижнего края обзора (то есть области сцены, которая находится на экране, или в фокусе камеры).
Как правило, условие смерти - если персонаж не может оставаться «в камере». Управляя движением камеры, вы сможете настроить свой игровой процесс. Например, если на этапе вертикальной прокрутки вы позволяете камере «резиново» лишь немного опускаться, а при полном движении вверх вы будете наказывать за глубокие, неэкранные падения.
источник
В качестве альтернативы проверке вертикальной координаты , вы можете просто проверить вертикальную скорость. Если персонаж падает быстрее , чем некоторый порог, заключают они мертвы (даже если там есть некоторые платформы достаточно низко , чтобы все - таки достичь, воздействие будет со смертельным исходом).
Конечно, это работает, только если ваша игра должным образом реализует базовую физику свободного падения, то есть скорость падения фактически увеличивается во время падения, как это происходит в действительности (вплоть до конечной скорости).
источник
Если у вас есть высота столбов, вы можете найти самый низкий из существующих и сравнить его с вертикальным положением игрока. Если он ниже нижней колонны, нет никаких шансов, что он сможет вернуться. Вы можете ограничить эту проверку только колоннами позади и перед игроком.
Пример: у нас есть 3 колонны высотой [10, 20, 40]. Игрок прыгнул на столб с высотой 40, он прыгает вперед на 20. Он чувствовал разрыв между 40 и 20, теперь он на высоте 15. Это значит, что он чувствовал. Для менее строгой проверки, подождите, пока он не станет ниже 10.
источник
Держите счет того, как долго персонаж упал. (то есть как долго они двигались вниз). Как только они упали больше, чем на экран, они по определению сошли со сцены, да?
источник