Я новичок в игровом дизайне и не знаю, как это делается. Я имею в виду создание игры для iOS, в которой корабль должен лететь как можно выше (с переменной скоростью), собирая бонусы и так далее, в пути.
Какой способ пойти сюда? Должны ли фон и предметы прокручиваться сверху или корабль действительно взлетает, перемещая при этом вид?
Ответы:
Это все относительно. На самом деле, вы всегда трансформируете свое мнение относительно вашей фиксированной позиции игрока.
Итак, забыв сейчас об экране, скажем, у вас есть эти 3 шага (представляющих позиции по мере их обновления в каждом игровом цикле):
playerWorldPosition = 50, 100; objectWorldPosition = 60, 200;
playerWorldPosition = 55, 110; objectWorldPosition = 60, 160;
playerWorldPosition = 60, 120; objectWorldPosition = 60, 120;
(как х, у в каждом случае)
Как вы можете видеть, игрок взлетает или прыгает вверх и немного двигается вправо, в то время как объект (может быть powerup) падает прямо вниз. Игрок ловит бонусы. Теперь, как вы рисуете это на экране?
Во-первых, давайте предположим, что вы хотите, чтобы ваш игрок всегда находился в центре экрана. Таким образом, представление привязывается к игроку - это самый простой подход к визуализации. Положение вашего игрока будет всегда
screenCentre
(т.е.screenWidth/2, screenHeight/2
). Как тогда вы получаете на экране положение других объектов в мире?Вы можете видеть, что эта формула работает даже для реального игрока, так
(playerWorldPosition- playerWorldPosition) + screenCentre
как равнаscreenCentre
. Таким образом, вы можете применить одну и ту же формулу к каждой сущности в вашей игре, просматривая список. Вы можете использовать этот простой подход, чтобы использовать его для других целей (например, отставание камеры, случаи, когда вы находитесь в углу уровня и т. Д.)источник