5

编辑:看起来问题出在触摸板而不是鼠标上。

目标: 即使在按键被按下时也能够响应鼠标移动。

我想修改 Three.js 的 PointerLockControls 使得:如果用户在按下 时移动鼠标W,那么相机应该继续向前移动,并且相机的方向也应该根据鼠标移动而改变。这在正常情况下不会发生。以下是听众:

mousemove 事件的监听器:

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;
}

我发现,如果我spacebar在按下 时点击W,那么玩家会继续向前移动并响应鼠标移动。这是我想要的效果(但即使不点击它也应该起作用spacebar)。

4

1 回答 1

2

通常操作系统在打字时会禁用触摸板。您应该在操作系统设置的某处找到一个选项来切换它。

于 2013-03-27T15:43:49.897 回答