Предыдущая Следующая
Получается, что значение в 3 пикселя задает фактическую скорость для движения спрайта по экрану. Меньшее значение от 3 пикселей (например, 1 пиксель) уменьшит скорость перемещения спрайта по экрану, а большее значение (например, 5 пикселей) соответственно увеличит скорость движения спрайта.
В целом выбирать скорость для движения объектов в игре необходимо аккуратно и на основе большого количества тестов игры. Дело в том, что очень много хороших и красивых игр из-за не правильно выбранной скорости объектов и главного героя проигрывают менее удачным играм. Если выбрать маленькую скорость для объекта, то пользователю может казаться, что игра несколько тормозит и лишена динамики. Если, в свою очередь, скорость будет сильно большой, то осуществлять контроль над игрой будет чрезвычайно трудно. Но в любом случае все зависит именно от той задачи, которую вы реализовываете в вашей игре.
Задавая скорость только по одной оси координат, вы соответственно будете передвигать спрайт вдоль этой оси, а если задавать скорость по обеим осям координат, то спрайт будет перемещаться под определенным углом. Например, если скорость по осям X и Y равна по 3 пикселя, то этот угол будет равен четко 45 градусам. Если используются неравные значения по осям, то угол движения будет либо меньше, либо больше. Дополнительно можно использовать и отрицательные значения для скорости, в этом случае позиция спрайта будет уменьшаться. Например, в приведенном выше примере это будет выглядеть следующим образом:
Vector2 spritePosition; spritePosition.X = 100; spritePosition.Y = 300;
// Обновляем состояние игры
protected override void Update(GameTime gameTime)
{
spritePosition.Y -= 3;
}
В этом исходном коде мы получаем движение спрайта снизу вверх по оси Y. Если такой подход использовать для оси X, то движение будет происходить спра-
154 Движение спрайтов в пространстве
Надеюсь, теперь смысл перемещения спрайтов в пространстве вам стал понятен, поэтому мы можем смело переходить к работе над проектами этой главы. В частности, вашему вниманию будут предложены два проекта: MoveSprite и MoveSpriteArray.
В первом проекте MoveSprite нашей целью будет перемещение спрайта по экрану сверху вниз. При этом как только спрайт будет достигать нижней кромки экрана, то он будет исчезать из нашего поля зрения, поскольку его текущая позиция станет уже за пределами нашей зоны видимости. Чтобы корректно обрабатывать данную ситуацию, мы создадим простой механизм, который должен будет следить за спрайтом на экране, и как только объект исчезнет с экрана, ему будет назначаться новая позиция в верхней части экрана и перемещение возобновится снова в том же ключе. Таким образом, спрайт в игре будет двигаться циклично сверху вниз. Предыдущая Следующая
|