编辑: 看起来问题是触摸板而不是鼠标。
目标: 即使按下键(s),也能响应鼠标移动。
我想修改Three.js的PointerLockControls,以便:如果用户在按下W时移动鼠标,则相机应继续向前移动,并且相机的方向也应根据鼠标移动而改变。 在正常情况下,这种情况并不会发生。以下是监听器:
mousemove事件的监听器:
var onMouseMove = function ( event ) {
var movementX = event.movementX || event.mozMovementX || event.webkitMovementX || 0;
camera.rotation.y-=movementX*0.002;
};
按键按下事件的监听器:
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;
}
键盘按键抬起事件监听器:
var onKeyUp = function(event){
case 38: // up
case 87: // w
moveForward = false;
break;
}
我发现,如果我按下W键时,再按下空格键,那么玩家将继续向前移动并响应鼠标移动。这是我想要的效果(但即使没有按下空格键也应该正常工作)。