Die kollision kannst du dir so vorstellen: Du hast zwei geometrische Formen (zum Beispiel Rechtecke im 2D Raum oder eben Quader im 3D Raum) und überprüfst nun, ob ein Punkt der einen Form innerhalb der anderen Form liegt..
Code:
xxxxxxxxxxxxxxxxxx
x................x
x................x
x............xxxxxxxxxxxx
x............x...x......x
xxxxxxxxxxxxxxxxxx......x
.............x..........x
.............x..........x
.............x..........x
.............xxxxxxxxxxxx
zum beispiel so... hier findet eine Kollision statt...
Im Code wird es jetzt so gelöst:
Wenn du dein Sprite bewegst überprüfst du, ob es nach der Bewegung mit irgendetwas kollidiert. Ist dies der Fall machst du die Bewegung im selben Frame noch rückgängig (bzw überprüfst es vorher mithilfe von temporären Koordinaten und lässt die Bewegung nur stattfinden falls keine Kollision stattfindet).
Oder noch ein Lösungsweg:
Sagen wir du bewegst dein Sprite um 50 Pixel nach rechts... nach 30 Pixeln kommt aber ein Rechteck und deine Kollisionsabfrage sagt dir "hey du, hier gehts nicht weiter"... jetzt verschiebst du in diesem Frame dein Sprite in einer while-Schleife solange nach links bis keine Kollision mehr stattfindet... so hält dein Sprite genau am Rechteck an
