Информатика -продвинутый курс


         

стереть фрагмент, рисуя его цветом


• нарисовать фрагмент

в нужном месте экрана;

• стереть фрагмент, рисуя его цветом фона или используя процедуру cleardevice;

• снова нарисовать фрагмент в другом месте экрана.

Такой способ осуществлен в программе billiard, где два шарика радиусом 5 пикселей разных цветов двигаются с одинаковой скоростью внутри зеленого прямоугольника, построенного с помощью процедуры bar.

Процедура blou измеряет смещение центра шарика от сторон прямоугольника по каждой оси и, если это смещение на следующем шаге цикла станет меньше радиуса, изменяет направление движения, моделируя поведение упругого шара при ударе о стенку.

В программе также рассмотрена ситуация соприкосновения шариков во время их движения. Она решается примитивно просто: каждый шарик меняет направление своего движения на противоположное.

Программа 33

program billiard;

uses crt,graph;

var х,y,dx,dy,gd,gm:integer; xl,yl,dxl,dyl:integer;

procedure blow(a,b:integer; var c,d:integer);

begin if (a<107) or (a>523) then c:=-c;

if (b<107) or (b>363) then d:=-d;

end;

begin

gd:=detect; initgraph(gd,gm,''); setcolor(14);

setlinestyle(0,0,1); rectangle(99,99,531,371) ;

setfillstyle(l,3); bar(100,100,530,370) ;

x:=320; y:=240; dx:=2; dy:°2;

xl:=320; yl:=200; dxl:=-2; dyl:=-2;

repeat circle(x,y,5); setcolor(4); circle(xl,yl,5);

blow(x,y,dx,dy); blow(xl,yl,dxl,dyl); delay(10);

if (abs(x-xl)<=10) and (abs(y-yl)<=10) then begin

dx:—dx; dy:=-dy; dxl:=-dxl; dyl:=-dyl; delay(300)

end;

setcolor(3); circle(х,у,5);

x:=x+dx; y:=y+dy;

setcolor(3); circle(xl,yl,5) ;

xl:=xl+dxl; yl:=yl+dyl; setcolor(14)

until keypressed;

closegraph

end.

Еще один способ организации движения на экране, широко применяющийся в компьютерных играх, связан с использованием нескольких экранных страниц. В режиме Vgamed их две, а в режиме Vgalo - четыре. Страницы имеют номера: 0,1,... В любой момент времени одну из страниц можно сделать видимой и посмотреть ее содержимое на экране с помощью процедуры setvisualpage(номep).

Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий