Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Способы создания движущихся изображений
1-ый способ. Дважды рисуя одно и то же изображение: первый раз цветом, отличным от цвета фона, второй раз – цветом фона. 2-ой способ. Используя процедуры и функции работы с видеопамятью. Изображение движется с помощью операции NormalPut. 3-ий способ. Используя процедуры и функции работы с видеопамятью. Изображение движется с помощью операции XorPut.
Пример программы движения шарика, падающего с левого верхнего угла экрана по диагонали в правый нижний.
1-ый способ. Program Demo_1; Uses Graph,Crt; Var Driver,Mode,i:Integer; Begin Driver:=Detect; InitGraph(Driver,Mode,''); SetBkColor(Black); For i:=25 to 300 do {схема движения шарика} Begin {рисуем шарик} SetColor(Red); {цвет границы – красный} Circle(i,i,15); {рисуем контур шарика} SetFillStyle(SolidFill,Blue); {стиль заполнения – синий фон} FloodFill(i,i,Red); {закрасили} {стираем шарик, закрашивая его цветом фона} SetFillStyle(SolidFill,Black); {стиль заполнения – черный фон} FloodFill(i,i,Red); {закрасили} SetColor(Black); {цвет границы – черный} Circle(i,i,15); {нарисовали черный контур на черном фоне, шарик исчез} Delay(3000); {пауза} end; {чтобы шарик остался на экране, нарисуем его еще раз} SetColor(Red); Circle(i,i,15); SetFillStyle(SolidFill,Blue); FloodFill(i,i,Red); ReadLn; CloseGraph; End.
Ой способ. Program Demo_2; Uses Graph,Crt; Var P:Pointer; {определяем нетипизированный указатель} Size:Word; Driver,Mode,i:Integer; Begin Driver:=Detect; InitGraph(Driver,Mode,''); {рисуем закрашенный шарик} SetBkColor(Black); SetColor(Red); Circle(30,30,15); SetFillStyle(SolidFill,Blue); FloodFill(30,30,Red); size:=ImageSize(5,5,50,50); {определяет объем памяти,} {необходимый для сохранения изображения} GetMem(P,Size); {выделяет память в динамически} {распределяемой области размером в size байт} GetImage(5,5,50,50,P^); {запоминаем изображение} for i:=5 to 300 do Begin PutImage(i,i,P^,NormalPut); {выводим изображение} Delay(3000); {пауза} end; ReadLn; CloseGraph; End.
Date: 2015-10-19; view: 269; Нарушение авторских прав |