2
A
回答
1
updateFcts.push(function(delta, now){
if (shipArr[0]===undefined){
}else{
//create two vector objects
var xd = new THREE.Vector3(marsMesh.position.x,marsMesh.position.y,marsMesh.position.z);
var yd = new THREE.Vector3(shipArr[0].position.x,shipArr[0].position.y,shipArr[0].position.z);
//find the distance/hypotnuse to the xyz location
var dicks = shipArr[0].position.distanceTo(marsMesh.position);
var subvec = new THREE.Vector3();
subvec = subvec.subVectors(xd,yd);
//sub subtrac the 3 vectors.
var hypotenuse = dicks;
console.log(hypotenuse);
//1.5 stops it at 1.5 distance from the target planet
if(hypotenuse > 1.5){
//console.log(hypotenuse);
shipArr[0].position.y += .0001*200*(subvec.y/hypotenuse);
shipArr[0].position.x += .0001*200*(subvec.x/hypotenuse);
shipArr[0].position.z += .0001*200*(subvec.z/hypotenuse);
}else{
//within fire range
alert ("FIIIIIRE");
}
}
})
我試了tween.js,並不高興,所以我編寫了一個函數我自己。
0
你可以使用https://github.com/sole/tween.js這是專注於此。
一個非常簡單的例子http://jsfiddle.net/qASPe(方將飛向5S後球)與主要驗證碼:
new TWEEN.Tween(ship.position)
.to(planet.position, 700) // destination, duration
.start();
之後,你可能想使用一個THREE.Curve,或其他路徑機制,作爲「飛」喜歡這裏http://jsfiddle.net/aevdJ/12
// create a path
var path = new THREE.SplineCurve3([
ship.position,
// some other points maybe? representing your landing/takeoff trajectory
planet.position
]);
new TWEEN.Tween({ distance:0 })
.to({ distance:1 }, 3000) // destination, duration
.onUpdate(function(){
var pathPosition = path.getPointAt(this.distance);
ship.position.set(pathPosition.x, pathPosition.y, pathPosition.z);
})
.start();
在所有情況下的路徑,不要忘了在你的更新功能加入這一行
TWEEN.update();
相關問題
- 1. 遊戲敵人向玩家移動
- 2. 無法使敵人向玩家移動
- 3. 在spritekit中隨機化不同的敵人向玩家移動
- 4. 敵人跟隨玩家正交運動
- 5. 錯誤的玩家和敵人的
- 6. 檢測敵人是否面臨玩家
- 7. 敵人關注玩家,輪轉
- 8. 如何找到玩家來自敵人的方向?
- 9. 如何讓敵人在靠近時轉向玩家? Unity3D
- 10. Libgdx敵人移動
- 11. 玩家,敵人和子彈互動(遊戲設計)
- 12. Galaxian般的敵人移動
- 13. 敵人隨機移動
- 14. Negamax - 玩家移動兩次
- 15. 追逐玩家時,AI的敵人聚集在彼此之間
- 16. 如何讓所有玩家受到敵人的攻擊?
- 17. 雪碧套件玩家和敵人碰撞
- 18. 如何讓敵人在pygame中跟隨玩家?
- 19. 如何讓玩家鎖定其半徑內的一個敵人?
- 20. 爲什麼我的敵人腳本不會跟隨玩家?
- 21. 玩家與敵人不能正常工作的衝突
- 22. OpenGL - 二維敵人不旋轉面對玩家
- 23. 讓玩家面對具有相同標記的不同敵人
- 24. XNA的敵人跟隨玩家,並在20像素內停止
- 25. 爲玩家設置無敵框架
- 26. 敵方精靈走向玩家的一條奇怪的道路
- 27. 向上和向下敵人移動使用翻譯電暈SDK
- 28. 當敵人在玩家的某個距離內獲得時,Laggy動畫
- 29. three.js所pointerlock多人敵人轉動不正常
- 30. 相對於玩家角度調整玩家移動
謝謝你,我試了tween.js,但我不能爲我的生活弄清楚如何暫停取消更新或改變補間。看起來好像一旦它被設定,它就成了石頭。 –