Hallo
Es werden Spielfiguren, Objekte und Gebäude ja aus Polygonen (meist Dreiecken) "gebaut".
Ich würde sagen du denkst an dieser Stelle viel zu kompliziert: Wozu brauchst du denn hier bitte Dreiecke zum Erstellen deiner Spielfiguren? Hast du nie einen NES oder Atari oder sowas gehabt? Kann mich beim besten Willen nicht daran erinnern dort jemals einen Objekt gesehen zu haben, dass aus vielen kleinen Dreiecken bestand -> das kam erst mit der 3D Programmierung. Viele einzelne Grafiken sind in diesem Fall die Lösung.
Was mir aber noch mehr Kopfzerbrechen bereitet, ist die Kollisionsberechnung.
Kollisionsberechnung ist in 2D auch nicht besonders schwierig. Bei 3D Spielen werden typischerweise Quader oder Kugeln als Kolisionsbox verwendet. Bei 2D wären das somit dann Rechtecke oder Kreise. Die Formeln für die Berechnung lassen sich damit dann auch recht einfach selbst herleiten. Wenn dir Kreise und Rechtecke nicht reichen, kannst du das ganze natürlich auch auf belibige Polygone ausweiten; dadurch steigt aber natürlich auch der Aufwand für deine Formel.
Ich kann mir eine Kollisions-Engine eigentlich nur so vorstellen, dass sie bei jeder Bewegung berechnet, ob ein Teil eines Objekts nach der Bewegung von der Position her mit dem Teil eines anderen Objekts übereinstimmt und diese Bewegung dann nur beschränkt zulassen. Das ist aber mit Sicherheit sehr sehr rechenaufwendig, weil ich bei _jeder_ Bewegung (also im Prinzip alle paar Millisekunden für dutzende Objekte) jede mögliche Kollision abfragen müsste. Ist soetwas mit Javascript überhaupt möglich?
Du musst natürlich nur die Objekte überprüfen, die sich auch wirklich geändert haben in Ihrer Position.
Hoffe, dass ich dich damit ein wenig in die "richtige" Richtung gelenkt habe.
ie:% fl:( br:& va:| ls:< fo:| rl:( n4:? ss:) de:µ js:| ch:? sh:) mo:} zu:|