Hi,
Die Figurdatei (bmp) besteht aus 4*3 Animationsphasen, wobei
Delphi-Quellcode:
PatternWidth := 18;
PatternHeight := 28;
Delphi-Quellcode:
const
ANIM_UP = 0;
ANIM_DOWN = 6;
ANIM_LEFT = 9;
ANIM_RIGHT = 3;
procedure TPlayer.DoMove(TimeGap: double);
begin
inherited DoMove(TimeGap);
if GetAsyncKeyState(VK_UP) < 0 then
begin
AnimStart := ANIM_UP;
AnimStop := AnimStart + 2;
y := y - 1;
end
else
if GetAsyncKeyState(VK_DOWN) < 0 then
begin
AnimStart := ANIM_DOWN;
AnimStop := AnimStart + 2;
y := y + 1;
end
else
if GetAsyncKeyState(VK_RIGHT) < 0 then
begin
AnimStart := ANIM_RIGHT;
AnimStop := AnimStart + 2;
x := x + 1;
end
else
if GetAsyncKeyState(VK_LEFT) < 0 then
begin
AnimStart := ANIM_LEFT;
AnimStop := AnimStart + 2;
x := x - 1;
end;
end;
In der Praxis gibt es das Problem das wenn ich grad nach oben am gehn war und dann nach unten drücke dann geht die Animation nicht direkt bei ANIM_DOWN los sondern da kommt erst das erste Bild von ANIM_RIGHT... dh das ganze sieht so aus:
^
|
->
|
v
statt
^
|
|
v
... Versteht ihr was das Problem ist? Bei DelphiX besteht dieses Problem irgendwie nicht.. Is das ein Fehler der Engine oder mache ich was falsch?
Im Anhang ist die exe...
Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."