Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

FreezingEngine

Treue Seele

  • »FreezingEngine« ist der Autor dieses Themas

Beiträge: 280

Wohnort: NRW

Beruf: Schüler

  • Private Nachricht senden

1

13.03.2011, 17:44

sfml 2d bounding box

hi,
habmal ne frage unzwar wie genau funktioniert das mit den bounding box kollision?
benutze im moment ein kollisions verfahren mit if(rechteck.contains(...)) funktioniert aber nicht wirklich,
soweit ich weiß braucht man schonmal 2 rechtecke für bounding box verfahren.
aber wie frage ich jez ab? (rechteck1 berührt rechteck2) ? :?:
"He who sacrifices freedom for security deserves neither."
Benjamin Franklin

FreezingEngine

Treue Seele

  • »FreezingEngine« ist der Autor dieses Themas

Beiträge: 280

Wohnort: NRW

Beruf: Schüler

  • Private Nachricht senden

3

13.03.2011, 18:20

was genau will der 2 parameter?
"He who sacrifices freedom for security deserves neither."
Benjamin Franklin

4

13.03.2011, 20:26

Diese Funktion erfordert nicht zwingend 2 Parameter.

Der erste Parameter ist notwendig. Es handelt sich um ein anderes Rectangle, das auf eine Überlappung mit dem Rectangle, von dem die Funktion ausgeführt wird, geprüft wird.

Wenn es für dich wichtig ist zu wissen, in welchem Bereich sich die beiden Rectangles überlappen (wenn sie es denn dann tun), dann kannst du als zweiten, optionalen, Parameter einen Zeiger auf ein Rectangle übergeben und dieses Rectangle nimmt dann die Werte (Position + Abmessung) des Schnittbereiches an.

Gruß
SaRu_

FreezingEngine

Treue Seele

  • »FreezingEngine« ist der Autor dieses Themas

Beiträge: 280

Wohnort: NRW

Beruf: Schüler

  • Private Nachricht senden

5

13.03.2011, 20:37

woran könnte es eigentlich liegen, wenn ein rechteck zufrüh/zu spät reagiert auf ein sprite reagiert?
achja und danke für alle antworten bezüglich bounding box^^ funzt auch^^
"He who sacrifices freedom for security deserves neither."
Benjamin Franklin

FreezingEngine

Treue Seele

  • »FreezingEngine« ist der Autor dieses Themas

Beiträge: 280

Wohnort: NRW

Beruf: Schüler

  • Private Nachricht senden

6

13.03.2011, 20:39

also ich steh mit dem panzer schon halb im rechteck da reagiert der nicht und wenn ich von links mit dem panzer auf die explosion zufahre reagiert er zu früh
"He who sacrifices freedom for security deserves neither."
Benjamin Franklin

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

7

13.03.2011, 21:18

Es existiert immer noch eine edit Funktion (;

Bilder/Code vllt.?
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

8

14.03.2011, 10:12

Hört sich so an, als wenn deine Rechtecke verschoben wären. Achte darauf, dass das Rechteckt auch genau auf deinem Sprite liegt. Du kannst das Rechteckt ja mal zusätzlich zeichnen. Dann siehst du es. Hört sich so an als wenn du die Position möglicherweise mittig vom Sprite speicherst. Quasi den Mittelpunkt der Figur. Wenn du diesen Punkt dann als oberen linken Punkt deines Rechteckes wählst ist es verschoben.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

FreezingEngine

Treue Seele

  • »FreezingEngine« ist der Autor dieses Themas

Beiträge: 280

Wohnort: NRW

Beruf: Schüler

  • Private Nachricht senden

9

16.03.2011, 13:28

hiermal der code vom rechteck und der code vom contains

C-/C++-Quelltext

1
 sf::IntRect explo1(bumm1.GetPosition().x, bumm1.GetPosition().y, bumm1.GetPosition().x +bumm1.GetSize().x, bumm1.GetPosition().y + bumm1.GetSize().y);






C-/C++-Quelltext

1
2
3
4
5
if (explo1.Contains(Panzer1.GetSize().x + Panzer1.GetPosition().x , Panzer1.GetSize().y + Panzer1.GetPosition().y))
            {
                Hpunkte --/2;
                screen.Draw(warnung);
            }
"He who sacrifices freedom for security deserves neither."
Benjamin Franklin

FreezingEngine

Treue Seele

  • »FreezingEngine« ist der Autor dieses Themas

Beiträge: 280

Wohnort: NRW

Beruf: Schüler

  • Private Nachricht senden

10

16.03.2011, 15:36

oder wolltse nochmehr code sehen? oder wie kann ich abfragen ob nur 1 teil von panzer in der explosion sich befindet und trozdem dmg kriegt??
"He who sacrifices freedom for security deserves neither."
Benjamin Franklin

Werbeanzeige