Kollision zu spät vermeiden

kuhlmaehn

Erfahrenes Mitglied
Hi,
ich spiel gerade etwas mit Kugelphysik rum und bin jetzt auf ein Problem gestoßen bei dem ich Hilfe bräuchte.
Die Kollisionserkennung funktioniert schon allerdings kann es passieren, dass sich der Ball schon im Rand befindet wenn diese Erkannt wird. Das kann ich aber doch auch nicht vermeiden!?
Denn wenn ich den Ball nur in ein-Pixel-Schritten bewege erreiche ich nicht genug Geschwindigkeit (läuft schon in einer Endlosschleife).
Aber wenn sich der Ball auch z.B. mit 8 Pixeln pro Refresh bewegen darf wird es ja passieren, dass der Ball auch mal 7 Pixel über die Wand hinausgeht.
Jetzt habe ich aber schon Flashgames gesehen, bei denen der Ball auf keine Fall in die Bande kommt. Wie wird das da gelöst?
Danke!
 
Hm ich würde mal darauf tippen, dass bevor die Kugel versetzt wird berechnet wird ob sie den Rand überschreitet. Wenn nicht kannst du sie einfach versetzten, wenn ja musst du sie eben um den Abstand zur Wand versetzen.
 
Prinzipiell wird das oft so gelöst, dass sobald 2 Objekte sich überschneiden sogenanntes detangling durchgeführt. Dabei werden prinzipiell die Objekte Stück für Stück auseinander genommen. Sie stoßen sich quasi ab. Man simuliert quasi einen Stoß und je nachdem mit welcher Intensität dieses Detangling geschieht stoßen sich die Objekte mehr oder weniger stark voneinander ab.
 
Mh es im Zeifelsfall nur auf den Abstand zur Wand setzen könnte aber vielleicht seltsam aussehen oder? Mal probieren :)
Mir ist jetzt noch die Idee gekommen als Minimum 2 Pixel zu nehmen und dann alles nur in Zweierschritten zu plazieren. Die Geschwindigkeit sollte dann denk ich auch ausreichen aber mal probieren.
Danke euch :)
 

Neue Beiträge

Zurück