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

通常、オペレーティング システムは、入力時にタッチパッドを無効にします。OS 設定のどこかにこれを切り替えるオプションがあるはずです。

于 2013-03-27T15:43:49.897 に答える