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

7.1.2. Класс Sprite проекта Animation

В исходный код класса Sprite нового проекта Animation необходимо добавить несколько элементов. Как вы помните, все наши последующие разработки модифицируют предыдущие. В первую очередь в классе Sprite нужно создать четыре

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

Рис. 7.2. Анимационная последовательность девушки

новые переменные, объявление которых происходит в глобальной области исходного кода файла Sprite.cs.

private int frameCount; private double timeFrame; private int frame; private double totalElapsed;

Первая переменная frameCount впоследствии будет содержать в себе количество фреймов нашей анимационной последовательности и примет прямое участие в организации циклического показа фреймов на экране. Вторая переменная timeFrame получит значение времени, измеряемое в миллисекундах, отведенное для показа одного из фреймов на экране. Именно с помощью этой переменной мы будем регулировать время задержки показа одного фрейма на экране. Если не делать задержки для показа одного из фреймов анимации, то переход по всей анимационной последовательности пройдет с такой скоростью, что вы не успеете даже заметить, что мы там пытались анимировать и зачем.

Следующая переменная frame - это своего рода счетчик, представляющий в текущий момент один из фреймов. Этот счетчик по прошествии заданного времени задержки (переменная timeFrame) увеличивается на единицу для перехода к показу следующего фрейма. Последняя переменная totalElapsed будет содержать значение времени, необходимое для расчета времени задержки показа одного фрейма, а точнее расчета прошедшего времени, выделенного на показ одного из фреймов.

После объявления в исходном коде всех переменных их необходимо инициализировать заданными значениями. Для этих целей в классе Sprite формируется второй конструктор, необходимый для создания анимированных объектов этого класса.

public Sprite(int frameCount, int framesPerSec) {

frameCount = frameCount;

timeFrame = (float)l / framesPerSec;

frame = 0;

totalElapsed = 0;

}

Теперь в классе Sprite имеются два конструктора этого класса, позволяющие создавать как статические, так и анимированные спрайты, или объекты этого класса. Второй конструктор класса Sprite содержит два целочисленных пара-

Проект Animation 141

метра - frameCount и framesPerSec, которые передаются в создаваемый объект класса.

Первый параметр frameCount задает общее количество фреймов для загружаемого при создании этого объекта изображения. Количество фреймов загружаемой анимационной последовательности необходимо точно знать, оно определяется на этапе создания рисунка. В нашем случае для девушки мы имеем 12 фреймов. На основе полученного значения, или количества фреймов изображения, происходит расчет времени задержки для показа одного фрейма на экране.


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

Горяченькое

Друзья

Hosted by uCoz