program LoRD; uses crt,graph; var dr,m:integer; {графический драйвер и режим} x,y, {координаты обьекта во время движения} dx,dy:integer; {прирост координат} ptr:pointer; {указатель на область памяти где сохраняется изображение} size:integer; {размер памяти} leftX, leftY, {координаты левого верхнего} rightX,rightY:integer; {правого нижнего углов прямоугольника, в который вписано изображение} i:integer; {параметр цикла} {*************изображение звездного неба******************************} procedure Sky; begin randomize; {инициализация генератора случайных чисел} SetBkColor(i); {цвет фона} SetColor(14); {цвет звезд} for i:=1 to 200 do {изображение звезд} Circle(random(640),random(480),1); end; {*****************изображение луны**************************************} procedure Moon; begin SetColor(14); Arc(450,100,270,90,50); Arc(390,100,320,40,80); SetFillStyle(1,14); floodFill(480,100,14); end; {******************сохранение изображения в динамической памяти**********} procedure SaveClip; begin leftX:=445; {координаты прямоугольника} leftY:=45; {в который вписана луна} rightX:=505; rightY:=155; size:=imagesize(leftX, leftY, rightX, rightY); {выдиление памяти} getmem(ptr,size); getimage(leftX,leftY,rightX,rightY,ptr^); {сохраняем изображение в памяти} putimage(leftX,leftY,ptr^,xorput); {спрятать изображение} end; {**************************движение луны**********************************} procedure Move; begin x:=leftX; y:=leftY; {стартовые координаты} dx:=10; dy:=10; {прирост координат} repeat {сдвигизображения} x:=x+dx; {смена координат луны} y:=y+dy; putimage(X,Y,ptr^,xorput); {изобразить фигуру в новых координатах} delay(2000); {задержка движения} putimage(X,Y,ptr^,xorput); {спрятать фигуру в старых координатах} if (x>640) or (x<0) {если фигура приблизилась к краю экрана} then dx:=-dx {сменить ее направление} else if(y<0) or (y>480) then dy:=-dy; until keypressed; end; {*********************основная программа***********************************} BEGIN dr:=Detect; InitGraph(dr,m,''); Sky; Moon; SaveClip; Move; readkey; end.
Луна движется по звездному небу
Подписаться на:
Комментарии к сообщению (Atom)
Если у вас интересные исходники и вы не прочь поделиться, то присылайте daslex@yandex.ru с указанием Темы: Графика Паскаль
К вашей работе будет прикреплено ваше авторство и по желанию добавлена ссылка на ваш сайт.
На одну страницу - Одна работа. На одну работу - Одна ссылка + указание автора
Основное требование - это один файл .pas без сторонних модулей (только с родными. предпочтение Graph).
Можно использовать ассемблерные вставки.
Все что Запускается у меня и работает, я выкладываю. в этом блоге.
К вашей работе будет прикреплено ваше авторство и по желанию добавлена ссылка на ваш сайт.
На одну страницу - Одна работа. На одну работу - Одна ссылка + указание автора
Основное требование - это один файл .pas без сторонних модулей (только с родными. предпочтение Graph).
Можно использовать ассемблерные вставки.
Все что Запускается у меня и работает, я выкладываю. в этом блоге.
Комментариев нет:
Отправить комментарий