Приставки
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
Команда Новости Помощь Ссылки
ПОМОЩЬ
Литература про игры
Предыдущая Следующая

{

graphics.GraphicsDevice.Clear(Color.CornflowerBlue);

spriteBatch.Begin(SpriteBlendMode.AlphaBlend);

sprite.DrawAnimationSprite(spriteBatch);

spriteBatch.End();

base.Draw(gameTime);

}

Полный исходный код проекта Animation вы найдете на компакт-диске в папке Code\Chapter7\Animation.

7.2. Проект Background

Фоновые изображения в играх могут быть различного плана, здесь все зависит от конкретной задачи в реализации самой игры. В нашем случае фон представлен сразу двумя статическими изображениями размером в 1024 пикселя по ширине и 768 пикселей по высоте (размер экрана монитора). Поэтому начальной точкой вывода этих изображений служит начало отсчета системы координат (рис. 7.3).

protected override void Update(GameTime gameTime) {

keyboardState = Keyboard.GetState();

if (keyboardState.IsKeyDown(Keys.Escape))

this.Exit();

double elapsed = gameTime.ElapsedGameTime.TotalSeconds; sprite.üpdateFrame(elapsed);

base.üpdate(gameTime);

}

В качестве параметра в методе UpdateFrame() класса Sprite передается значение переменной elapsed. Эта переменная при каждой итерации игрового цикла, то есть при каждом новом проходе по методу Update(GameTime gameTime), получает текущее значение времени, прошедшее за один игровой цикл или за один проход по коду метода Update(GameTime gameTime). А уже в методе UpdateFrame() класса Sprite происходит сравнение времени задержки на показ одного фрейма с прошедшим временем и соответственно решается, показывать по-прежнему этот фрейм анимационной последовательности или переходить к следующему фрейму.

В самом конце исходного кода класса Gamel происходит вызов метода Draw() , где на экран выводится один из фреймов всей анимационной последовательности изображения.

protected override void Draw(GameTime gameTime)

Рис. 7.3. Расположение фона на экране монитора

В качестве фоновой картинки мы используем два изображения. Первое изображение - это основной фон игры, а второе изображение представляет специальную рамку и бортик. Рамка рисуется по окантовке всего экрана, а внутреннее пространство этой рамки вырезается (рис. 7.4). Впоследствии в рамке будет выводиться подсчет очков и другая сопутствующая игровая информация. Ширина рамки с правой стороны составляет 300 пикселей. Это значение нам понадо-

104 Спрайтовая анимация

Проект Background 105

Рис. 7.4. Фоновое изображение

бится в дальнейшем при расчете местоположения падающих с неба объектов. Но возникает вопрос: а зачем нам два изображения, когда все это можно было нарисовать в одном рисунке?


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

Горяченькое

Друзья

Hosted by uCoz