如何在three.js中自定义指针锁控件?

时间:2013-11-17 02:06:00

标签: three.js

基于指针锁控制示例
http://pages.cs.wisc.edu/~lizy/mrdoob-three.js-ef5f05d/examples/misc_controls_pointerlock.html

如何修改此示例,以便我们可以使用键上下移动并使用鼠标滚轮或键放大和缩小?

欢迎任何有关自定义指针锁控件的提示。

1 个答案:

答案 0 :(得分:0)

使用开关识别正在按下的键。添加相应的eventListeners。

KEYDOWN

var onKeyDown = function ( event ) {
    switch ( event.keyCode ) {
        case 38: // up
        case 87: // w
            moveForward = true;
            break;

        ...
    }
};

document.addEventListener( 'keydown', onKeyDown, false );

KEYUP

var onKeyUp = function ( event ) {
    switch( event.keyCode ) {
        case 38: // up
        case 87: // w
            moveForward = false;
            break;

        ...
    }
};

document.addEventListener( 'keyup', onKeyUp, false );

鼠标滚轮

var onMouseWheel = function ( event ) {
    ...
};

this.domElement.addEventListener( 'mousewheel', onMouseWheel, false );
this.domElement.addEventListener( 'DOMMouseScroll', onMouseWheel, false ); // firefox