Кралство Делфи

Този пример показва как можете да анимирате опростен елф, като комбинирате класове Delphi 5 с Win32 GDI функции.

Изходни текстове можете да вземете тук.

Как работи. Анимационният проект се състои от фоново изображение и нарисуван върху него летящ елф, който се движи в рамките на фоновия клиент. Фонът е представен от растерно изображение на звезди, разпръснати по небето (фиг. 1).

делфи

Елфът е съставен от два растра 64x32. За тях ще говорим по-долу, но засега нека разгледаме какво се случва в програмата. Горният модул дефинира класа TSprite, който съдържа полета за съхраняване на позициите на елфа на фоновото изображение и два обекта от типа TBitmap за съхраняване на растерните изображения на елфа. Конструкторът TSprite.Create създава и двата екземпляра от класа TBitmap и ги зарежда с реални растри. И двете elf растерни изображения и фоновото растерно изображение се съдържат в ресурсен файл, който е свързан с проекта, като включва следния израз в основния модул: < $R SPRITES.RES >.

След зареждане на растра се задават границите на изображението на елфа. Деструкторът TSprite.Destroy освобождава и двата растерни екземпляра. Основната форма съдържа два обекта от тип TBitmap, обект TSprite и индикатори за посока, които определят линията на движение на елфа. Освен това в основната форма са дефинирани два метода: MyIdleEvent (), който служи като манипулатор на събитие Application.OnIdle, и DrawSprite (), който се използва за изчертаване на изображение на елф.

Манипулаторът на събитие FormCreate () създава и двата екземпляра от класа TBitmap и зарежда всеки един и същ растерно изображение (ще разберем малко по-късно). След това се създава екземпляр на клас TSprite, задават се стойностите на индикатора на посоката и на манипулатора на събитието Application.OnIdle се присвоява методът MyIdleEvent (). И накрая, манипулаторът на събитие FormCreate () преоразмерява формата, за да се побере на фоновото изображение.