0
three.jsとWebSocketsを使ったコンセプトの証明として、1年前に小さなタンクゲームを作成しました。しかし、Three.jsのそれ以降のバージョンでは、クォータニオンを行う方法が変更されました。私は最新のバージョンでそれを行う方法のサンプルコードを見つけることができません。これは私の古いコードである:Three.Jsのクォータニオン - ランドスケープオブジェクトをクローズする
function calculateQuaternions(tankmesh) {
var n = getLandscapeNormal(tankmesh);
var q1 = new THREE.Quaternion();
q1.setFromAxisAngle(new THREE.Vector3(0, 1, 0), tankmesh.rotation.y);
var q2 = new THREE.Quaternion();
var axis = new THREE.Vector3(0, 1, 0);
var theta = Math.acos(axis.dot(n));
axis.cross(n).normalize();
q2.setFromAxisAngle(axis, theta);
q2.multiply(q1);
tankmesh.quaternion = q2;
}
getLandscapeNormal機能は、タンク(タンク位置風景の傾きから計算した)傾斜させることschould方向を示す正規化ベクトルを返します。 コードが機能したら、タンクはこのビデオのように動いた:https://www.youtube.com/watch?v=CMNllyqq_O0
誰もこの計算方法を今すぐ手伝ってもらえますか?
'tankmesh.quaternion誰がに後で古いThree.JSからquarternionsを移植に問題がある場合、(バージョン81)が行うの方法です.copy(q2);はそれを行う方法です。 – WestLangley