アプリにカメラがあります:
camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );
camera.position.z = 1;
camera.position.y = -5;
camera.rotateOnAxis(new THREE.Vector3(1, 0, 0), degInRad(90));
camera.up = new THREE.Vector3(0, 0, 1);
関数内のこれらのコードはrender
、キーを押している間、カメラを回転させる必要があります。
if (leftPressed) {
camera.rotateOnAxis((new THREE.Vector3(0, 1, 0)).normalize(), degInRad(1));
} else if (rightPressed) {
camera.rotateOnAxis((new THREE.Vector3(0, 1, 0)).normalize(), degInRad(-1));
}
if (upPressed) {
camera.rotateOnAxis((new THREE.Vector3(1, 0, 0)).normalize(), degInRad(1));
} else if (downPressed) {
camera.rotateOnAxis((new THREE.Vector3(1, 0, 0)).normalize(), degInRad(-1));
}
カメラは回転しますが、必要な方法ではありません。飛行機の FPS (ファースト パーソン シューティング ゲーム) のようにカメラが回転するようにしてほしい。私が欲しいものを理解するために写真を見てください...
私は使用しようとしてsin(1)
いますが、cos(1)
どのように機能するか理解できません.機能は魅力のように機能し、彼女が見ている方向にカメラを動かします. PSこれはおそらくそれが役立つ
ドキュメントです。
キーボード イベントを処理するには、KeyboardJS を使用
します。関数は次のとおりです。 rotateOnAxis
translate
three.js
degInRad
function degInRad(deg) {
return deg * Math.PI / 180;
}
JSFiddle のリンク
O
- カメラの位置
O-O1
- 現在のカメラの方向
R1
- 現在の回転方向
R
- 望む方向良い写真
で申し訳ありません。