![]() |
Kollisions Abfrage
Servus ich versuche schon seit einer Woche SpaceInvaders zu programmieren.
Was bis jetzt ach erfolgreich klappt bis auf die kollisions abfrage... Ich versuche die xy koordinaten des "bullets"(kugel die das schiff abschießt) mit den koordinaten der Invader zu überprüfen. So weit ist alles klar nur müsste ich einen bestimmten bereich eingeben wo der bullet im Invader eintrifft. Ansonsten müsste man im spiel den einen pixel links oben treffen, was fast unmöglich ist. :wall: thx, greetz j0hn |
Re: Kollisions Abfrage
Mit der Funktion
![]()
Delphi-Quellcode:
Wenn die Invaders nicht nur mit einem Punkt der Bullets kollidieren sollen (können sie überhaupt :gruebel: ?), solltest du statt PtInRect IntersectRect benutzen.
Tot := PtInRect(Bounds(Enemy.Position.X, Enemy.Position.Y, Enemy.Width, Enemy.Height), Bullet.Position);
|
Re: Kollisions Abfrage
Jo, vielen dank.
Nur weiß ich nicht in welche variable sich die koordinaten abspeichern lassen. [delphi]hilf:=PtInRect(Bounds(Invader1.Left,Invader1.Top,I nvader1.Width,Invader1.Height),Bullet.Left); hilf habe ich als integer deklariert. Nur geht leider nicht kann man die werte umwandeln oder muss ich einen typisierten datentyp verwenden?? greetz, j0hn :wiejetzt: |
Re: Kollisions Abfrage
Ich würde vermuten, dass es ein TRUE oder FALSE zurückgibt, dementsprechend muss der typ von hilf ein Boolean sein
air Edit: Achja..sicher, dass es Bullet.Left bei dir ist? Wohl eher etwas wie sowas:
Delphi-Quellcode:
Point(Bullet.Left, Bullent.Top);
|
Re: Kollisions Abfrage
Jetzt bin confused, ich bräuchte ein konkretes beispiel das funktioniert....
|
Re: Kollisions Abfrage
Habe ich doch :zwinker: :
Zitat:
Delphi-Quellcode:
Für funktionierenden Code bräuchten wir schon etwas mehr von deinem bisherigen.
var
Tot: Boolean; begin Tot := PtInRect(Invader1, Bullet.TopLeft); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:24 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