2. Спрайты могут иметь состояния, задаваемые строками. Каждое состояние имеет свой независимый набор кадров, меняющихся циклически. Например, игровой объект в состоянии Идти имеет три кадра, а в состоянии Сидеть - один кадр (в этом состоянии анимация отсутствует). Переключая состояния, можно моделировать различное поведение игрового объекта.
Кроме того, анимацию всех спрайтов можно выключить/включить вызовом следующих процедур:
procedure StartSprites;
Стартует анимацию всех спрайтов
procedure StopSprites;
Останавливает анимацию всех спрайтов
Класс SpriteABC
Класс SpriteABC является потомком класса MultiPictureABC и представляет графический объект Спрайт, автоматически анимирующий на экране последовательность рисунков. Спрайты также могут иметь несколько состояний, каждое из которых представляет собой анимацию рисунков.
constructor Create(x,y: integer; fname: string); Создает спрайт, загружая его из файла с именем fname. Имя fname может быть либо именем графического файла, либо именем информационного файла спрайта с расширением .spinf. Если имя является именем графического файла, то создается спрайт с одним кадром. Остальные кадры добавляются методом Add. После этого при необходимости добавляются состояния методом AddStates и вызывается метод CheckStates. Если файл имеет расширение .spinf, то он содержит информацию о кадрах и состояниях спрайта и должен сопровождаться соответствующим графическим файлом. После создания спрайт отображается на экране в позиции (x,y) |
constructor Create(x,y,w: integer; fname: string); Создает спрайт, загружая его из файла fname. Файл должен хранить рисунок, представляющий собой последовательность кадров одного размера, расположенных по горизонтали. Каждый кадр считается имеющим ширину w. Если ширина рисунка в файле fname не кратна w, то возникает исключение. После этого при необходимости добавляются состояния методом AddStates и вызывается метод CheckStates После создания спрайт отображается на экране в позиции (x,y) |
constructor Create(x,y,w: integer; p: Picture); Создает спрайт, загружая его из объекта p: Picture. Он должен хранить рисунок, представляющий собой последовательность кадров одного размера, расположенных по горизонтали. Каждый кадр считается имеющим ширину w. Если ширина рисунка не кратна w, то возникает исключение. После этого при необходимости добавляются состояния методом AddStates и вызывается метод CheckStates. После создания спрайт отображается на экране в позиции (x,y) |
constructor Create(g: SpriteABC); Создает спрайт - копию спрайта g |