2D Kollissionserkennung
-
Hoi,
ich beschäftige mich mal im Gebiet der Spieleprogrammierung und möchte bewusst möglichst viel selbst machen.Jetzt bin ich gerade mit Kollisionserkennung beschäftigt ... ich mache das mit Rechtecken um jedes Objekt, das relevant ist:
bool Synthetic::Physics::World::canMoveTo(CollidableObject* object, sf::Vector2f const& dest, CollidableObject*& collidesWith) const { BoundingBox newBoundingBox(dest, object->size()); for(CollidableObject* cur : m_objects) { if(newBoundingBox.intersects(cur->boundingBox())) { collidesWith = cur; return true; } } collidesWith = nullptr; return false; }
Das ist ja so ganz okay, solange sich das Objekt in kleinen Schritten bewegt.
Aber wie könnte ich testen ob der weg nach dest in Vogelfluglinie frei ist, also bei größeren Sprüngen? Müsste ich da den Weg in kleinen Scritten durchiterieren und immer wieder prüfen? Oder gibt's da ne performantere Lösung?danke und Grüße,
Ethon
-
Google: continuous collision detection in games
-
So wie ich mir das dachte ... schade bzw nicht schade, das lässt sich easy implementieren.
-
Tja, in 3D ist das leider nicht so leicht. (Okay, wenn man nur AABBs hat vll schon. ;))
-
cooky451 schrieb:
Tja, ich 3D ist das leider nicht so leicht. (Okay, wenn man nur AABBs hat vll schon. ;))
Naja, 3D würde ich auch ne Bibliothek nutzen.
Aber die Chance einen BMW bei diesen Popup-Gewinnspielen zu gewinnen ist leider höher als in kleinem Team ein gutes 3D-Spiel fertig zu bekommen, deswegen kein 3D für mich, leider.
-
Alles was du wissen musst: Polycolly.zip