5

编辑:看起来问题是触摸板不是鼠标。当按下键时响应鼠标移动(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”时打空格键,然后,玩家继续前进,响应鼠标移动。这是我想要的效果(但即使不打空格键也应该可以工作)。

+0

是否有可能使用旧版本的three.js?我只是在全屏模式下运行了示例http://mrdoob.github.com/three.js/examples/misc_controls_pointerlock.html,发生的情况与您所描述的完全相反。当按下“W”时,照相机继续前进,照相机的方向根据鼠标移动而改变。当按下空格键时,只有垂直移动(即使按W键)。 – gaitat 2013-03-24 07:19:40

+0

哦....当我使用我的笔记本电脑的触摸板,那么行为就像我描述的那样。但是当我使用鼠标本身时,行为就像你描述的那样。嗯....看起来像一个新的新问题... – coolscitist 2013-03-24 12:07:29

+0

没有我的触摸板具有相同的鼠标行为。 – gaitat 2013-03-24 12:45:37

回答

2

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

+0

它在Windows 7中禁用触摸板的“触摸检查”选项后工作。非常感谢。 – coolscitist 2013-03-30 02:28:29

相关问题