Анимация в Делфи
Вероятността, че сандвичът ще падне масло страна надолу,
е право пропорционална на цената на килима.
От законите на Мърфи.
Нека да изобразяват звездното небе, в което летяща чиния лети. Така че е необходимо да се направи тази анимация с автоматично възстановяване на заден план при движеща се картина.
Първо се направи небето. Сложете върху формата и кликнете на снимката. При натискане на бутона ще изпълни следния код:
процедура TForm1.Button1Click (Sender: TObject);
На първо място, цялото платно е изпълнен с черен, а след това ви показва произволни места на 500 звезди. Можете да използвате платното свойство на обект за имиджа една точка - масив от пиксели [X, Y], което осигурява директен достъп до точката на цвят с координати X, Y.
Сега ние трябва да се направи летяща чиния. Те наистина никога не е виждал, не е необходимо толкова изключителна прецизност в детайлите. Нека екипът ще представи тираж плочи в отделна процедура е значително да улесни живота в бъдеще.
процедура TForm1.Button1Click (Sender: TObject);
Моля, имайте предвид, че процедурата за Ufo трябва да бъде в рамките на процедурата по TForm1.Button1Click защото в противен случай няма да има достъп до формата на екрана Form1. Поради естеството на работа с цвят анимация на летяща чиния на екрана не е синьо. Plate е представена от цвят се получава чрез провеждане "логически ИЛИ" на цвета на фона и изображенията. В този случай, плаката ще бъде жълто, което е доста приемливо.
Остава да се организира движението на плочите на екрана. Това се прави по следния начин:
Най-важната линия в този пасаж - Pen.Mode: = pmNOTXOR. Тя определя изхода графики режим "XOR". В този режим, на изхода на едно и също изображение на два пъти на едно място води до автоматична реконструкция на изображението при фоновото изображение. В се показва серия от картина за първи път (наричаме процедура Ufo), след това се извършва Application.ProcessMessages екип, който осигурява незабавно показване на НЛО на екрана и прави закъснение за 10ms, така че трябваше време, за да видим какво се е случило. Допълнителна НЛО се появи на същото място отново и плоча с изображение ще бъдат загубени, а под него автоматично се възстановява фон.
Координати плочи са се променили и Х и Y, така че ще сляза в дясно на екрана.
Бягай ... Красиво? Не! Екранът мига грозен. Какво да се прави? Лесно, това е просто още един трик Delphi. Необходимо е да се динамичен образ не трепти от формата, в началото на процедурата по анимация дисплея, за да добавите един ред
Сега нашата карикатура ще изглежда доста добре.