Je crée un labyrinthe jouable dans Three.js. Tous les objets - le sol, le plafond et les murs - ont été placés dans des axes X et Z positifs. La caméra est placée comme ceci:Les commandes de la caméra sont opposées à ce qu'elles devraient être. Pourquoi?
camera = new THREE.PerspectiveCamera(45,
window.innerWidth/window.innerHeight,
0.1,
1000
);
camera.position.set(0, 0.25, 0);
// The camera is placed pointing to the nearest open path from the
// initial position. Check mazeGenerator.js for the reference of
// "coordinates".
if(grid[1][0] == coordinates.W)
{
camera.lookAt(new THREE.Vector3(1, 0.25, 0));
}
else
{
camera.lookAt(new THREE.Vector3(0, 0.25, 1));
}
et il se déplace comme ça:
function keyboardCheck()
{
var movementSpeed = 0.02;
var rotationSpeed = 0.03;
if(keyboard.pressed('w') || keyboard.pressed('up'))
{
camera.translateZ(-movementSpeed);
}
if(keyboard.pressed('a') || keyboard.pressed('left'))
{
camera.rotateY(rotationSpeed);
}
if(keyboard.pressed('d') || keyboard.pressed('right'))
{
camera.rotateY(-rotationSpeed);
}
}
Si je place l'appareil photo sans la fonction lookAt
, il semble qu'il fait face [0, 0, 0]
, mais bien sûr ce que je voulais faire était d'aider le joueur un peu en faisant face à la caméra le chemin ouvert le plus proche possible. Pour le faire avancer, je dois décrémenter Z, car sinon, lorsque vous appuyez sur la touche "avancer", elle recule. Cela me fait penser que même si je dis à la caméra de regarder dans une certaine direction, l'axe Z de l'objet est opposé à l'axe Z du monde.
La question est: pourquoi cela se passe-t-il?
Merci beaucoup d'avance.
- https://github.com/MikelAlejoBR/3D-Maze-95/tree/0.4
- https://github.com/MikelAlejoBR/3D-Maze-95/issues/8
Cristal clair. Je vous remercie :) – MikelAlejoBR