Вот код, по идее красный квадрат должен двигаться но он этого не делает, при этом не каких ошибок он не выводит что случилось???
Цитата
uses GraphABC;
var
s : array [,] of integer;
i,x,y,vspeed : integer;
game_end : boolean;
procedure KeyPress(key: char); begin
if (key='d') and (s[(x div 8)+1,(y div 8)]=0) then
x:=x+8;
if (key='a') and (s[(x div 8)-1,(y div 8)]=0) then
x:=x-8;
if (key='w') and (vspeed=0) and (s[(x div 8),(y div 8)+1]=1) then
vspeed:=-16;
end;
procedure KeyDown(key: integer); begin
if (key=vk_enter) then game_end:=true;
end;
procedure Gravity(); begin
if vspeed=0 then begin
if s[(x div 8),(y div 8)+1]=0 then y+=8;
end;
if s[(x div 8),(y div 8)+vspeed]=0 then y+=vspeed;
if vspeed<>0 then
vspeed+=2;
end;
procedure Draw(); begin
Redraw;
LockDrawing;
setbrushcolor(clwhite);
fillrectangle(0,0,640,480);
setbrushcolor(clblack);
fillrectangle(0,192,640,224);
setbrushcolor(clred);
fillrectangle(x,y,x+8,y+8);
end;
Begin
game_end:=false;
x:=0;
y:=0;
s := new integer[200,200];
for i:=0 to 79 do
s[i,24] := 1;
while game_end=false do begin
Draw();
Gravity();
OnKeyPress:=KeyPress;
OnKeyDown:=KeyDown;
sleep(30);
end;
end.