procedure TForm1.TimerUpTimer(Sender: TObject);
begin
if TUp = 1 then
begin
Player.Canvas.CopyRect(Rect(0, 0, 32, 32), PlayerBit.Canvas, Rect(16, 16, 32, 32));
Player.Top:=Player.Top-8;
TUp := 2;
Exit;
end;
if TUp = 2 then
begin
Player.Canvas.CopyRect(Rect(0, 0, 32, 32), PlayerBit.Canvas, Rect(0, 16, 16, 32));
Player.Top:=Player.Top-8;
TUp := 3;
Exit;
end;
if TUp = 3 then
begin
Player.Canvas.CopyRect(Rect(0, 0, 32, 32), PlayerBit.Canvas, Rect(32, 16, 48, 32));
Player.Top:=Player.Top-8;
TUp := 4;
Exit;
end;
if TUp = 4 then
begin
Player.Canvas.CopyRect(Rect(0, 0, 32, 32), PlayerBit.Canvas, Rect(0, 16, 16, 32));
Player.Top:=Player.Top-8;
TimerUp.Enabled := False;
Up.Enabled := True;
Exit;
end;
end;
procedure TForm1.UpExecute(Sender: TObject);
var u: integer;
begin
Up.Enabled := False;
if PU = 1 then
begin
u := StrToInt(Map.Strings[StrToInt(PlayerY)-1][StrToInt(PlayerX)]);
if (u = 0) or (u = 2) or (u = 3) or (u = 5) then
begin
TUp := 1;
PlayerY := IntToStr(StrToInt(PlayerY)-1);
TimerUp.Enabled := True;
end;
end
else
begin
Player.Canvas.CopyRect(Rect(0, 0, 32, 32), PlayerBit.Canvas, Rect(0, 16, 16, 32));
PL:=0; PR:=0; PU:=1; PD:=0;
Up.Enabled := True;
end;
end;