Thema: Delphi [DelphiX] Kollision

Einzelnen Beitrag anzeigen

Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#1

[DelphiX] Kollision

  Alt 9. Sep 2004, 15:59
Hi zusammen!

Ich weiß, das Thema hatten wir schon oft, aber mir helfen die Suchergebnise nicht.


Folgender Code wird ausgelöst, wenn eine Kollision stattfindet (2D):
Delphi-Quellcode:
  TAnimation = class(TImageSprite)
    public
      procedure DoMove(MoveCount: Integer); override;
      procedure DoCollision(Sprite: TSprite; var Done: Boolean); override;
    end;

...


procedure TAnimation.DoCollision(Sprite: TSprite; var Done: Boolean);
var InCollision: boolean;
begin
  //Bewegung nach links (ich müsste noch die Y Koorinaten überprüfen)
  if (X < TGegenstand(Sprite).X + Gegenstand.Width) then
          cangoleft := false;
end;
Hier möchte ich abfragen, ob sich eine Figur in eine bestimmte Richtung bewegen kann, in dem Beispiel, nach links.

So überprüfe ich auch die anderen benachbarten Koorinaten, das Problem ist nur, dass diese Prozedur ausgelöst wird, wenn man sich in einem Gegenstand befindet, und nicht, wenn man danaben ist.


Hier ist eine Kollisionsabfrage beschrieben, die mich jedoch nicht weiter bringt.

Ich habe schon versucht, die Kollisions-Prozedur einfach neu zu schreiben und keine von TAnimation zu nehmen, doch das hat nicht geklappt, da, da z.B. "Sprite" nicht bekannt ist.


Kann mir da evtl jemand behilflich sein?
  Mit Zitat antworten Zitat