编辑:看起来问题是触摸板不是鼠标。当按下键时响应鼠标移动(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