![]() |
Dead;
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
Also ich habe das Problem, das in meinem Programm der Befehl Dead; nicht so funktionieren will. Also es geht um ein Objekt, das gegen ein anderes stösst und dann explodiert. Allerdings bleibt die Explosion dann bei einem Bild stehen (scheint immer unterscheidlich zu sein, welches). Vielleicht kann mir jemand helfen damit. Im Anhang ist das Programm. Danke im vorraus! mfg theCOW |
Re: Dead;
Hi,
der Fehler liegt daran, das du inherited DoMove nur aufrufst, wenn FMove = true ist. Wenn du das so machst:
Delphi-Quellcode:
Sollte alles klappen. Jetzt musste nur noch die Animation geschwindigkeit der Explosion angeben, da diese doch ein bisschen schnell ist ;)
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; |
Re: Dead;
Zitat:
Schau dir mal den Quelltext wieder an, dann müssteste das eigentlich sehen. Das ist ja grad das Problem ^^ Danke schonmal im vorraus mfg theCOW |
Re: Dead;
Hi,
im Quelltext von dir steht:
Delphi-Quellcode:
So steht das. Und das geht ja nich.
procedure TAnimation.DoMove(MoveCount: integer);
begin // (1.) if FMove = true then begin inherited DoMove(MoveCount); // Das muss zu (1.) 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; |
Re: Dead;
@theCOW: Bitte ändere den Titel Deines Beitrages. Dieser ist absolut nicht aussagekräftig.
Siehe auch ![]() |
Re: Dead;
Ok thx, so gehts ^^
Hab ich ja ganz vergessen bzw. übersehen. Danke :thumb: Frage wäre damit erledigt. mfg theCOW Edit: @Admin: Ja, sry, werds mir für das nächste mal merken, Thread kann geschlossen werden. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz