![]() |
Re: DelphiX "Schussproblem"
Hallo,
danke, aber ich hab nóch ein paar Fragen: 1.Wo kommt der Code zum Einsatz?
Delphi-Quellcode:
2. Und der?
procedure TMG.DoMove(MoveCount: Integer);
begin inherited; case Car.Ausrichtung of auLeft: X := X - 3; auRight: X := X + 3; auUp: Y := Y - 3; auDown: Y := Y + 3; end; if (X > Form1.DXDraw1.Width) or (X < 0) then Dead; if (Y > Form1.DXDraw1.Height) or (Y < 0) then Dead; end; procedure TCar.Schiessen; begin Dec(FMunitionMG); with TMG.Create(engine) do begin x := self.X; y := self.Y; end; end; [/delphi] 3. Bei mir war das Problem doch, dass ich den schuss nur einmal erzeugen konnte, solabge der alte noch existiert. Wie hast du das konkret umgangen? Gruß Spurius |
Re: DelphiX "Schussproblem"
Zitat:
mal die Implementierung der Klassen TSprite und TImageSprite und insbesondere die Methoden TSprite.DoMove, TImageSprite.DoMove udn TSprite.Move an. Zitat:
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); begin if Key = VK_SPACE then begin if Car.Munition > 0 then Car.Schiessen; <==== HIER end; end; Zitat:
|
Re: DelphiX "Schussproblem"
Wie hast du das gemacht, dass mehere Instanzen von dem Schuss gleichzeitig existieren konnten?
|
Re: DelphiX "Schussproblem"
Mich würd die Lösung immermoch interessieren.
Wie kann ich mehrere Instanzen eines Objects erzeugen, die gleichzeitig existieren, aber nicht aus einem array oder so. |
Re: DelphiX "Schussproblem"
Da ich gefragt wurde ob ich noch zeigen könnte, wie man das Problem mit dem Schuss (Konkret: dass der Schuss Richtung wechselt wenn der Car die Richtung wechselt) lösen könnte, habe ich hier noch kurz eine kleine Lösung:
1. Im Private-Teil der Klasse TMG die Varible FRichtung: TAusrichtung; deklarieren. 2. TCar.Schiessen um eine Zeile erweitern:
Delphi-Quellcode:
3. In der DoMove Methode von TMG die Zeile
procedure TCar.Schiessen;
begin Dec(FMunitionMG); with TMG.Create(FOrm1.DXSpriteEngine1.Engine) do begin FRichtung := self.FAusrichtung; // <== diese Zeile ist neu! x := self.X; y := self.Y; end; end;
Delphi-Quellcode:
durch
case Car.Ausrichtung of
Delphi-Quellcode:
ersetzten.
case FRichtung of
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:35 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 by Thomas Breitkreuz