Приставки
Nintendo (Dendy)
Nintendo 64
Sega Genesis
Sega CD / 32x
Master System
Super Nintendo
Turbo Grafx 16
Sega Saturn
Sony PlayStation
GameBoy Advance
GameBoy / Color
Game Gear
Atari
Другие

Утилиты
Системные утилиты
GoodXXXX
Sega CD / 32x
Nintendo 64
Переводы, хакинг
Музыка

Мир приставочных игр

Версия 2.00a

Leonis © 2002-2009
Команда Новости Помощь Ссылки
ПОМОЩЬ
Литература про игры
Предыдущая Следующая

друг на друга.

Далее в методе MoveSprite() переделываем код для движения массива объектов.

public void MoveSprite()

{

for (int i = 0; sprite.Length > i;

{

sprite[i].spritePosition += sprite[i].speedSprite;

if (sprite[i].spritePosition.Y > Window.ClientBounds.Height)

{

120 Движение спрайтов в пространстве

Проект MoveSpriteArray 121

Рис. 8.4. Установка спрайтов на игровые позиции в момент первого запуска игры

sprite[i].spritePosition = new Vector2(rand.Next(10, Window.ClientBounds.Width -

300 - sprite[i].spriteTexture.Width / 12), -500);

Обработка ситуации с выходом спрайта из зоны видимости реализована так же, как и в предыдущем проекте, но по оси Y задается значение в -500 пикселей. Делается это для того, чтобы уже исчезнувшие с экрана спрайты ставились на новые позиции повыше (подальше) и дали возможность пройти всем предыдущим спрайтам, еще не достигнувшим конца экрана.

Затем в методе Update() класса Gamel мы вызываем метод UpdateFrame() класса Sprite для обновления анимационной последовательности спрайтов и метод MoveSprite() для движения спрайтов по экрану.

protected override void Update(GameTime gameTime)

keyboardState = Keyboard.GetState();

if (keyboardState.IsKeyDown(Keys.Escape))

this.Exit();

double elapsed = gameTime.ElapsedGameTime.TotalSeconds; for (int i = 0; sprite.Length > i;

sprite[i].UpdateFrame(elapsed);

MoveSprite(); base.Update(gameTime);

}

Для обновления анимационной последовательности методом UpdateFrame() используется цикл. Точно такой же цикл мы применяем и в методе Draw() для рисования спрайтов на экране. Полный исходный код класса Game1 приведен в листинге 8.2, а полный код проекта находится на компакт-диске в папках Code\Chapter8\MoveSpriteArray.

//=========================================================================

/// <summary>

/// Листинг 8.2

/// Исходный код к книге:

/// "Программирование компьютерных игр под Windows в XNA Game Studio Express" /// Автор книги: Горнаков С. Г. /// Глава 8

/// Проект: MoveSpriteArray /// Класс: Game1 /// Массив спрайтов /// <summary>

//=========================================================================

#region Using Statements using System;

using System.Collections.Generic; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Storage; #endregion


Предыдущая Следующая

Горяченькое

Друзья

Hosted by uCoz