Thema: Tennis

Einzelnen Beitrag anzeigen

Benutzerbild von Nonsense
Nonsense

Registriert seit: 23. Nov 2002
389 Beiträge
 
Delphi 5 Standard
 
#40

Re: Tennis

  Alt 5. Sep 2004, 12:51
Ich hab eine Frage, bzgl. meines Pong-Spiels. Es gibt da ein Problem mit der Kollision. Wenn der Ball nicht frontal auf den Schläger trifft, sondern an der unteren oder oberen Seite, fliegt er durch den Schläger durch (Siehe Anhang).

Die Kollisionsabfrage funktioniert folgendermaßen: Ich habe eine Funktion, der die X- u. Y- Koordinaten sowie Höhe und Breite von Ball und Schlägern übergeben wird. Diese überprüft dann einfach per Rechtsecks-Kollisionsabfrage, ob sich die Rechtecke schneiden.
Delphi-Quellcode:
  if IsCollision(Self.X, Self.Y, Self.Height, Self.Width,
    Player1.X, Player1.Y, Player1.Height, Player1.Width) or
    IsCollision(Self.X, Self.Y, Self.Height, Self.Width,
    Player2.X, Player2.Y, Player2.Height, Player2.Width) then DX := DX * (-1);
Wo liegt der Fehler? Strange.

Edit: Hab den Fehler gefunden. Ich muss vorher die Steuerung "abschalten", so dass der Schläger nicht weiter "in den Ball" bewegt werden kann. Danke trotzdem.
Miniaturansicht angehängter Grafiken
image2_637.gif  
  Mit Zitat antworten Zitat