Pasajul grafic de tip pascal - forum tehnic

De exemplu, puteți specifica un ciclu de mișcare până la apăsarea tastei. Într-o buclă într-o variabilă, citiți valoarea aleatorie a direcției de mișcare, care va servi ca o condiție pentru ciclul imbricat de mutare a obiectului la dx și dy aleatoare. La atingerea limitei ecranului, ciclul intern este întrerupt și controlul este transferat în bucla exterioară, în care valoarea din direcție este generată din nou.

Un exemplu de utilizare a metodei PutImage. Mișcarea este doar orizontală.

La mine aici sa dovedit

Programul RGZ;
Utilizează CRT, grafic;
Const Figura Hight = 55;
Figura Lățime = 35;
FiguraColor = roșu;
FiguraBackground = albastru;
MenuText: array [1..3] de string = ('Svobodni', 'Upravlenie', 'Exit');
var selectați, i, gd, gm: întreg;
konez: boolean;
ch: char;
procedura Gagarin (x, y, culoare, fundal: întreg);
începe
setcolor (culoare);
linia (x, y, x + 40, y + 25);
linia (x, y, x + 20, y + 25);
linia (x + 20, y + 25, x + 100, y + 25);
linia (x + 20, y + 55, x + 100, y + 55);
linia (x + 20, y + 25, x + 20, y + 55);
linia (x + 100, y + 55, x + 130, y + 40);
linia (x + 100, y + 25, x + 130, y + 40);
linia (x + 20, y + 55, x, y + 80);
linia (x, y + 80, x + 40, y + 55);
cerc (x + 90, y + 40, 10);
cerc (x + 70, y + 40, 10);
cerc (x + 50, y + 40, 10);
se încheie;
procedură Upravlenie;
var x, y, ccorost: întreg;
începe
x: = getmaxx div 2;
y: = getmaxy div 2;
ckorost: = 1;
repeta
Gagarin (x, y, FiguraColor, FiguraBackground);
ch: = readkey;
Gagarin (x, y, negru, negru);
cazul ch din
# 72: dacă (y-ckorost)> 10 atunci dec (y, ckorost);
# 80: dacă (y + ckorost + Figura Lățime)<480 then inc(y,ckorost);
# 75: dacă (x-ckorost)> 10 atunci dec (x, ckorost);
# 77: dacă (x + ckorost + Figura înalt)<640 then inc(x,ckorost);
'+': dacă ckorost<60 then inc(ckorost);
'-': dacă ckorost> 0 atunci dec (ckorost);
se încheie;
până la (ch = # 27) sau (ch = # 13);
se încheie;
Procedură Svobodnoe;
Var X, Y, DX, DY. integer;
Ch. char;
începe
X: = Random (605);
Y: = Random (480);
DX: = 1;
DY: = 1;
În timp ce TRUE face
începe
ClearDevice;
Gagarin (X, Y, FiguraColor, FiguraBackground);
dacă Y> = 480 atunci DY: = -DY;
dacă Y <= 0 then DY := -DY;
dacă X> = 640 atunci DX: = -DX;
dacă X <= 0 then DX := -DX;
X: = X + DX;
Y: = Y + DY;
Întârziere (1000);
dacă KeyPressed începe apoi
Ch: = ReadKey;
dacă Ch = # 27 atunci Break
capăt
capăt
End;
începe
gd: = detectează;
initgraph (gd, gm, '');
randomiza;
konez: = false;
repeta
cleardevice; selectați: = 1;
repeta
pentru i: = 1 - 3 începe
dacă i = selectați apoi setcolor (roșu) altceva setcolor (verde);
outtextxy ((getmaxx div 2) -50, (getmaxy div 2) -50 + i * 16, MeniuText [i]);
se încheie;
ch: = readkey;
cazul ch din
# 72: dec (selectați);
# 80: inc (selectați);
se încheie;
dacă selectați<1 then select:=3;
dacă selectați> 3, selectați: = 1;
dacă ch = # 27 atunci începe
selectați: = 3;
ch: = # 13;
se încheie;
până la (ch = # 13);
cleardevice;
caz selectați din
1: Svobodnoe;
2: Upravlenie;
3: konez: = adevărat;
se încheie;
până la sfârșit;
closegraph;
Sfârșit.

Articole similare