Nach einigen Tests mit Timer, Koordinatenverschiebung ersten Kollisionen an den Enden des Spielfeldes komme ich nun an meine ersten Grenzen.
Folgendes Problem:
Ich habe ein feststehendes Hindernis auf dem Spielfeld, vom dem der Ball abprallen soll. Ein Abprall von einem rechteckigen Objekt ist mir bereits gelungen. Nun will ich das mal auf den nächten Level bringen und den Ball von einem Kreis abprallen lassen. Und da ergeben sich für mich Verständnisprobleme.
Also folgendes Szenario:
Der Ball fliegt aus irgendeiner Richtung auf das KREIS-Objekt zu und soll korrekt abprallen (Einfallswinkel = Reflektionswinkel).
Was weiss ich bzw. was ist als Umgebungsvariablen bekannt:
- Das Verhältnis mit dem der Ball sich bewegt (x-y-Verhältnis pro Timerintervall)
- Die Koordinaten des Balls (top, left, width, height)
- Die Koordniaten des Abrall-Kreises (ein Shape z.B.)
Mein Ansatz (codefrei und nur so in Gedanken):
- Den Aufprallpunkt berechnen
- Tangente anlegen (Aus Aufprallpunkt und Mittelpunkt des Abprall-Kreises)
- Koordinatensystem bzw. Achsen drehen
- Aus dem vorigen Punkt im Raum und dem Aufprallpunkt des Balles Einfallswinkel auf der Tangente berechnen
- Reflektionswinkel berechnen
- Reflektionswinkel aufgrund der vorigen Drehung nach Faktor der selbigen ändern
- neue x-y-Verhätlnis daraus ermitteln
- Ball auf die Reise schicken
Ich weiss, sehr theoretisch und es wird wohl deutlich, dass erst das mathematische Problem gelöst werden muss, bevor ich verstehen kann, was da im Code passieren muss.
Hat jemand ne tolle Idee? Besonders das Tangente anlegen usw. sorgt in meinem Kopf zu einer Mathereizüberflutung!