Tridora-CPU/examples/lines.pas
2024-09-19 14:10:33 +02:00

70 lines
1.1 KiB
ObjectPascal

PROGRAM lines;
PROCEDURE movinglines(max_x, max_y, max_col, ms:INTEGER);
VAR x1,y1:INTEGER;
VAR x2,y2:INTEGER;
VAR delta_x1, delta_y1:INTEGER;
VAR delta_x2, delta_y2:INTEGER;
VAR col:INTEGER;
BEGIN
x1 := 120;
y1 := 90;
x2 := 340;
y2 := 220;
delta_x1 := 9;
delta_y1 := 4;
delta_x2 := 3;
delta_y2 := 7;
col := 1;
WHILE NOT CONAVAIL DO
BEGIN
x1 := x1 + delta_x1;
y1 := y1 + delta_y1;
x2 := x2 + delta_x2;
y2 := y2 + delta_y2;
IF (x1 > max_x) OR (x1 < 0) THEN
BEGIN
delta_x1 := -delta_x1;
x1 := x1 + delta_x1;
END;
IF (y1 > max_y) OR (y1 < 0) THEN
BEGIN
delta_y1 := -delta_y1;
y1 := y1 + delta_y1;
END;
IF (x2 > max_x) OR (x2 < 0) THEN
BEGIN
delta_x2 := -delta_x2;
x2 := x2 + delta_x2;
END;
IF (y2 > max_y) OR (y2 < 0) THEN
BEGIN
delta_y2 := -delta_y2;
y2 := y2 + delta_y2;
END;
col := col + 1;
IF col > max_col THEN col := 1;
DRAWLINE(x1,y1,x2,y2,col);
delay(ms);
END;
END;
BEGIN
initgraphics;
movinglines(639,399,15,0);
END.