2015-05-02 107 views
0

經過一段時間,讓攝像機移動全部解決後,是時候在我的three.js項目中添加移動了。首先,我只是嘗試使用camera.translateZ(movementSpeed),但這會讓相機飛起來,我想限制移動到x和z軸。基本上我計劃簡單地使用攝像機y旋轉的餘弦和正弦來找到z和x速度。這對於旋轉的上半場來說工作得很好,但在下半場停止。有沒有更好的方法來做到這一點,或者我可以以某種方式解決它?three.js播放器移動bug

你可以在http://jsfiddle.net/zLa78yqw/2/找到它的小提琴,請注意,我添加了一個球,它顯示了向前進入相機的位置。

我搞清楚三角洲Z和X代碼:

var zvel=Math.cos(camera.rotation.y); 
var xvel=Math.sin(camera.rotation.y); 
testBall.position.z=camera.position.z-zvel*2; 
testBall.position.x=camera.position.x-xvel*2; 

請幫幫忙,我一直停留在這一段時間。

TLDR:我需要幫助使3js中的對象向前移動,而不移動。

回答

0

我想你想要的不是camera.rotation.y,而是相機的世界方向的方位角。

vector = camera.getWorldDirection(); 
azimuth= Math.atan2(vector.x,vector.z);