Приставки
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.2. Анимационная последовательность девушки

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

В исходный код класса Sprite проекта Animation необходимо добавить несколько новых элементов по сравнению с предыдущим проектом. Как вы помните, все наши последующие разработки модифицируют предыдущие. В первую очередь в классе Sprite нужно создать четыре новые переменные, объявление которых происходит в глобальной области исходного кода файла 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)1 / framesPerSec;

frame = 0;

totalElapsed = 0;

}

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

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

Проект Animation 97

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


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

Горяченькое

Друзья

Hosted by uCoz