AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi DelphiX-------Schuss problem !!!
Thema durchsuchen
Ansicht
Themen-Optionen

DelphiX-------Schuss problem !!!

Ein Thema von bundy · begonnen am 25. Mär 2004 · letzter Beitrag vom 25. Mär 2004
Antwort Antwort
Benutzerbild von bundy
bundy

Registriert seit: 24. Mai 2003
Ort: Eisenstadt
438 Beiträge
 
Delphi 2007 Architect
 
#1

DelphiX-------Schuss problem !!!

  Alt 25. Mär 2004, 22:22
Hallo Leute

Ich hab ein problem.
Warum verschwinden nicht alle Schüsse ?

Delphi-Quellcode:

 Tschuss = class(TImageSpriteEx)
    leben,speed:single;
  public
   constructor Create(AParent: TSprite ); override;
   Procedure DoMove(MoveCount: Integer);override;
    procedure DoCollision(Sprite: TSprite; var Done: Boolean); override;
  end;


procedure Tschuss.DoCollision(Sprite: TSprite; var Done: Boolean);
begin
 if Schuss.X>1000 then dead;

end;


constructor Tschuss.Create(AParent: TSprite );
begin
  inherited Create(AParent);
  Image:=Form1.DXImageList1.Items.Find('Schuss');
  width:=image.width;
  height:=image.height;

end;

procedure TForm1.DXTimer1Timer(Sender: TObject; LagCount: Integer);
begin

DXInput1.Update;
DXSpriteEngine1.Move(1);
DXDraw1.Flip;
DXSpriteEngine1.Draw;
DXSpriteEngine1.Dead;

end;
Nicht alle Schüsse sterben. Und nach ein paar Minuten ruckelt die Anwendung, weil zuviele Sprites da sind
Was mach ich da falsch ?
+++Glaube keiner Statistik, die du nicht selbst getürkthast.++++
********************
Ein anonymer Statistiker. *
********************
  Mit Zitat antworten Zitat
tommie-lie
(Gast)

n/a Beiträge
 
#2

Re: DelphiX-------Schuss problem !!!

  Alt 25. Mär 2004, 22:29
Ich bin weder DelphiX-Spezialist noch -Fan, aber du machst du Freigeben der Objekte anscheinend in "DoCollision". Vom Namen her würde ich sagen, daß das nur aufgerufen wird, wenn die Collision Detection Engine eine Kollision des Projektils mit irgendwas anderem erkannt hat. Wenn man nun daneben schießt, kollidiert nix und folglich wird die Funktion niemals aufgerufen.
Von daher bräuchtest du irgendein Event, das in jedem Frame aufgerufen wird (DoMove ) und in dem du dann überprüfst, ob die X-Position weit genug weg ist, daß du das Objekt löschen kannst.
  Mit Zitat antworten Zitat
Benutzerbild von bundy
bundy

Registriert seit: 24. Mai 2003
Ort: Eisenstadt
438 Beiträge
 
Delphi 2007 Architect
 
#3

Re: DelphiX-------Schuss problem !!!

  Alt 25. Mär 2004, 22:45
Das dürfte jezt funzen DANKE

Aber weisst du vielecht auch noch warum alle Schüsse sterben und nicht nur der ,der sterben soll ?
+++Glaube keiner Statistik, die du nicht selbst getürkthast.++++
********************
Ein anonymer Statistiker. *
********************
  Mit Zitat antworten Zitat
Benutzerbild von bundy
bundy

Registriert seit: 24. Mai 2003
Ort: Eisenstadt
438 Beiträge
 
Delphi 2007 Architect
 
#4

Re: DelphiX-------Schuss problem !!!

  Alt 25. Mär 2004, 23:08
Ich habs rausgefunden ganz von alleine

Delphi-Quellcode:
if (Y = Form1.DXDraw1.Height) or ((X < 0) or (X > Form1.DXDraw1.Width)) then
    begin
    Dead;
    end;
DANKE NOCHMALS
+++Glaube keiner Statistik, die du nicht selbst getürkthast.++++
********************
Ein anonymer Statistiker. *
********************
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz