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

1

12.04.2012, 14:53

Problem mit Kollisionsüberprüfung: An welcher Seite findet die Kollision statt?

Bin zurzeit dabei einen Breakout - Klon in C++ mit der Bibliothek SFML zu programmieren. Ich bin mit dem Programm schon soweit, dass man ein Brett hat, dass man nach links und rechts bewegen kann, der Ball vom Brett, je nachdem, aus welcher Richtung er kommt und wo er am Brett aufprallt, in eine bestimmte Richtung reflektiert wird. Der Ball wird auch von den Wänden reflektiert. Ich habe auch schon die Blöcke erstellt, die man mit dem Ball treffen muss.
Dabei habe ich jedoch nun folgendes Problem.
Um den Ball von den Blöcken abprallen zu lassen, muss ich ja wissen, ob der Ball den Block an der oberen / unteren Seite oder an der linken / rechten Seite trifft.
Wenn der Ball nämlich den Block an der oberen / unteren Seite trifft, dann gilt: Ausfallswinkel = 360 - Einfallswinkel.
Wenn der Ball den Block jedoch an der linken / rechten Seite trifft, dann gilt: Ausfallswinkel = 180 - Einfallswinkel.

Habt ihr eine Idee, wie ich denn nun herausfinden kann, an welcher Seite der Ball mit dem Block kollidiert?
Danke schonmal im Voraus.

2

12.04.2012, 15:04

Statt das komplette Ding abzufragen, fragst du die Seiten ab.
Sprich: Statt typisch, oft vorkommendes Rechteck, Quadrat 1 und Quadrat 2. Oder so was.
Wäre wohl die einfachste Lösung.

MfG
Check

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

3

12.04.2012, 15:15

Könntest du auch vom Bewegungsvektor und der Position drauf schließen. Anstatt dem Vektor von mir aus auch ein Winkel und eine Geschwindigkeit. Mal es dir einfach mal auf und überleg dir in welche Richtung sich der Ball bewegen kann, wie er relativ zum Block positioniert ist und was du aus diesem Wissen an Informationen ziehen kannst. Wirklich einfach mal einen Zettel nehmen und malen;)
„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.“

4

15.04.2012, 14:12

Kann der Thread bitte nach
C, C++, C#, Delphi, Java, Python und Lua (4)
verschoben werden?
Habe ihn versehentlich im "Offtopic" Ordner erstellt

Werbeanzeige