Hi,
der Fehler liegt daran, das du
inherited DoMove nur aufrufst, wenn FMove = true ist.
Wenn du das so machst:
Delphi-Quellcode:
procedure TAnimation.DoMove(MoveCount: integer);
begin
inherited DoMove(MoveCount);
if FMove = true then
begin
if (IsUp in Form1.DXInput1.States) and (Y >= 0) then
Y := Y-vY;
if (IsDown in Form1.DXInput1.States) and (Y+Height <= Form1.DXDraw1.Height) then
Y := Y+vY;
if (IsLeft in Form1.DXInput1.States) and (X >= 0) then
X := X-vX;
if (ISRight in Form1.DXInput1.States) and (X+Width <= Form1.DXDraw1.Width) then
X := X+vX;
AnimCount := 4;
AnimLooped := true;
AnimSPeed := 24/100;
AnimStart := 0;
Collision;
end
else
if FCollision then
begin
if AnimPos = 3 then
Dead;
end;
end;
Sollte alles klappen. Jetzt musste nur noch die Animation geschwindigkeit der Explosion angeben, da diese doch ein bisschen schnell ist