編輯:看起來問題是觸摸板不是鼠標。當按下鍵時響應鼠標移動(Javascript,jQuery)
目標:即使在按下按鍵時也能夠響應鼠標移動。
我想修改Three.js的PointerLockControls,以便:如果用戶在按下「W」的時候移動鼠標,那麼攝像機應該繼續前進,攝像機的方向也應該根據鼠標移動而改變。這在正常情況下不會發生。這裏有聽衆:
監聽的鼠標移動事件:
var onMouseMove = function (event) {
var movementX = event.movementX || event.mozMovementX || event.webkitMovementX || 0;
camera.rotation.y-=movementX*0.002;
};
監聽器keydown事件:
var onKeyDown = function (event) {
case 38: // up
case 87: // w
moveForward = true;
break;
//keys: a, s, d are handled similarly
case 32: // space
if (canJump === true) velocity.y += 10;
canJump = false;
break;
}
監聽器keyup事件:
var onKeyUp = function(event){
case 38: // up
case 87: // w
moveForward = false;
break;
}
我發現,如果我按「W」時打空格鍵,然後,玩家繼續前進,響應鼠標移動。這是我想要的效果(但即使不打空格鍵也應該可以工作)。
是否有可能使用舊版本的three.js?我只是在全屏模式下運行了示例http://mrdoob.github.com/three.js/examples/misc_controls_pointerlock.html,發生的情況與您所描述的完全相反。當按下「W」時,照相機繼續前進,照相機的方向根據鼠標移動而改變。當按下空格鍵時,只有垂直移動(即使按W鍵)。 – gaitat 2013-03-24 07:19:40
哦....當我使用我的筆記本電腦的觸摸板,那麼行爲就像我描述的那樣。但是當我使用鼠標本身時,行爲就像你描述的那樣。嗯....看起來像一個新的新問題... – coolscitist 2013-03-24 12:07:29
沒有我的觸摸板具有相同的鼠標行爲。 – gaitat 2013-03-24 12:45:37