Java Core
2D-Kollisionsprüfung auf AABB-Basis mit Achsentrennung
Wird die Bewegung auf X- und Y-Achse gleichzeitig geprüft, bleibt der Charakter an Hindernissen hängen. Durch eine getrennte Prüfung bewegt sich der Spieler entlang der freien Achse weiter (Wall-Sliding). Details:Ecken-Prüfung: Es werden alle 4 Ecken der Bounding-Box gegen das Gitter getestet. Corner Inset (-1px): An der rechten und unteren Kante wird $1\text{ Pixel}$ abgezogen, um falsche Treffer an Exakt-Grenzen benachbarter Tiles zu vermeiden.
Referenz:
Datei
1. Spielprojekt
· Klasse Player
double newX = x + dx * speed * deltaTime;
double newY = y + dy * speed * deltaTime;
// X-Achse separat prüfen
if (!isColliding(newX, y, tileMap, interactables)) {
x = newX;
}
// Y-Achse separat prüfen (nutzt bereits neues X!)
if (!isColliding(x, newY, tileMap, interactables)) {
y = newY;
}