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

相關問題