AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Kollisions Abfrage

Ein Thema von j0hn · begonnen am 9. Jun 2005 · letzter Beitrag vom 10. Jun 2005
Antwort Antwort
j0hn

Registriert seit: 25. Mai 2005
8 Beiträge
 
#1

Kollisions Abfrage

  Alt 9. Jun 2005, 14:34
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.

thx, greetz j0hn
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#2

Re: Kollisions Abfrage

  Alt 9. Jun 2005, 14:55
Mit der Funktion Delphi-Referenz durchsuchenTypes.PtInRect sollte es gehen:
Tot := PtInRect(Bounds(Enemy.Position.X, Enemy.Position.Y, Enemy.Width, Enemy.Height), Bullet.Position); Wenn die Invaders nicht nur mit einem Punkt der Bullets kollidieren sollen (können sie überhaupt ?), solltest du statt PtInRect IntersectRect benutzen.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
j0hn

Registriert seit: 25. Mai 2005
8 Beiträge
 
#3

Re: Kollisions Abfrage

  Alt 10. Jun 2005, 13:50
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
  Mit Zitat antworten Zitat
Benutzerbild von Airblader
Airblader

Registriert seit: 29. Okt 2004
Ort: Geislingen an der Steige
742 Beiträge
 
#4

Re: Kollisions Abfrage

  Alt 10. Jun 2005, 13:56
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:
Point(Bullet.Left, Bullent.Top);
Ingo Bürk
Es nimmt der Augenblick, was Jahre geben.

Johann Wolfgang von Goethe
  Mit Zitat antworten Zitat
j0hn

Registriert seit: 25. Mai 2005
8 Beiträge
 
#5

Re: Kollisions Abfrage

  Alt 10. Jun 2005, 14:08
Jetzt bin confused, ich bräuchte ein konkretes beispiel das funktioniert....
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#6

Re: Kollisions Abfrage

  Alt 10. Jun 2005, 22:25
Habe ich doch :
Zitat von Khabarakh:
Tot := PtInRect(Bounds(Enemy.Position.X, Enemy.Position.Y, Enemy.Width, Enemy.Height), Bullet.Position);
Angepasst an dein Codefragment:
Delphi-Quellcode:
var
  Tot: Boolean;
begin
  Tot := PtInRect(Invader1, Bullet.TopLeft);
end;
Für funktionierenden Code bräuchten wir schon etwas mehr von deinem bisherigen.
Sebastian
Moderator in der EE
  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 23:28 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