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