Kollisionserkennung und Verarbeitung bei Rechtecken

seejay

Grünschnabel
Hallo,

ich habe gerade ein kleines Problem. Ich möchte zum Lernen der ganzen Thematik eine Art Pong programmieren. Leider habe ich etwas Probleme bei der Berechnung des Ausgangswinkels bei den Schlägern. Generell gilt ja EIntrittswinkel ist gleich Austrittswinkel. Ich weiß aber nicht wie ich herausfinden soll ob mein Schläger von links/rechts oder von oben/unten getroffen wurde.
Zur Zeit prüfe ich nur ab, ob der Ball innerhalb des rechteckigen Schläger wäre und multipliziere dann die Geschwindigkeit auf der X-Ebene mit -1. Aber wenn jetzt der Schläger von unten oder oben getroffen würde, müsste ja nicht die X Geschwindigkeit. sondern die y Geschwindigkeit umgedreht werden.

Kann mir jemand sagen, wie ich da herausfinden kann, von wo der Ball den Schläger trifft?

Danke und Gruß
seejay
 
Howdie.

Sowas hab ich vor 5 Jahren oder so auch mal programmiert. Hab grad gesucht, aber finde den Workspace nicht mehr. Ich glaube, ich hab mir immer die letzten paar Ballbewegungen gemerkt und diese bei der Schlägerberührung abgefragt. So kannst du den Winkel und die Geschwindigkeit ausrechnen. Aber sowas ähnliches scheinst du ja schon zu machen.

Was ich nicht verstehe: Du weißt doch, auf welcher Seite der Schläger getroffen wurde, oder? Oder wie rechnest du die Kollision aus - vermutlich über contains oder eine ähnliche Flächenoperation? Wenn du die Kollisionserkennung über die Kanten aurechnest, dann weißt du, wo der Ball auftrifft und kannst dementsprechend auch die Y-Achse mit einbeziehen. Es ist einiges umständlicher, aber genauer.

Gruß
miffi
 
Zurück