Hallo Leute,
ich habe ein Problem mit der Kollisions-Erkennung beim Fallen in LWJGL!
Vorwort:
Ich habe vor kurzem angefangen, eine Art Minecraft/Cubeworld-Klon zu erschaffen.
Der sieht soweit eigentlich schon ganz gut aus, bis auf einen kleinen Fehler:
Aufgabe:
Die Kollisions-Erkennung in X-/Z-Richtung funktioniert bereits, nicht aber in Y-Richtung:
Mein Character soll eine Größe von 2 (LWJGL-Einheiten) haben, dementsprechend muss ich
bei der Kollision im Fallen den Voxel (Block) 2 Einheiten unter dem Kopf (Kamera) abprüfen.
Problem:
Mein Character hält stets 1 Voxel (Block) über dem Boden an.
zuständiger Code:
Weiß da eventuell jemand von euch Rat?
PS. Der Code des Spiels auf dem momentanen Stand ist im Anhang hinterlegt.
ich habe ein Problem mit der Kollisions-Erkennung beim Fallen in LWJGL!
Vorwort:
Ich habe vor kurzem angefangen, eine Art Minecraft/Cubeworld-Klon zu erschaffen.
Der sieht soweit eigentlich schon ganz gut aus, bis auf einen kleinen Fehler:
Aufgabe:
Die Kollisions-Erkennung in X-/Z-Richtung funktioniert bereits, nicht aber in Y-Richtung:
Mein Character soll eine Größe von 2 (LWJGL-Einheiten) haben, dementsprechend muss ich
bei der Kollision im Fallen den Voxel (Block) 2 Einheiten unter dem Kopf (Kamera) abprüfen.
Problem:
Mein Character hält stets 1 Voxel (Block) über dem Boden an.
zuständiger Code:
Java:
...
float old_y = y;
y += speedY /* */ * delta * 10;
speedY -= Constants.GRAVITY * delta * 10;
if ( y - 2 < 0 || world[ (int) x ][ (int) y - 2 ][ (int) z ] != null ) {
y = old_y;
canJump = true;
}
...
Weiß da eventuell jemand von euch Rat?
PS. Der Code des Spiels auf dem momentanen Stand ist im Anhang hinterlegt.