Мы используем файлы cookie, чтобы упростить навигацию на этом сайте. Если вы даете свое согласие на использование файлов cookie и обработку ваших персональных данных, нажмите «Принимаю».

Как правильно захватить курсор для First-Person камеры

Домой Форумы Для программистов Как правильно захватить курсор для First-Person камеры

Просмотр 3 сообщений - с 1 по 3 (из 3 всего)
  • Автор
    Сообщения
  • #13343
    webgl
    Customer

    В RunCode() пишу:

    var container = document.getElementById('container');
    container.addEventListener('click', function () {
      container.requestPointerLock();
    }, false);

    Курсор захватывается, но камера мышью не управляется, можно только перемещаться с клавиатуры. Чего-то явно не хватает, а чего я не понимаю.

    #13346

    После перехода в режим PointerLock нужно крутить саму камеру исходя из event-ов мыши:

    function onMouseMove(event) {
    
        var movementX = event.movementX || event.mozMovementX || event.webkitMovementX || 0;
        var movementY = event.movementY || event.mozMovementY || event.webkitMovementY || 0;
    
        ...
    }
    
    

    Или можно назначить PointerLockControls на камеру, как это сделано в этой демке: https://cdn.soft8soft.com/demo/examples/index.html?q=pointerlo#misc_controls_pointerlock

    Soft8Soft Tech Chief
    X | FB | LinkedIn

    #13350
    webgl
    Customer

    Отлично, спасибо:

            container.addEventListener("mousemove", onMouseMove, false);
    
            function onMouseMove(event) {
    
                var movementX = event.movementX || event.mozMovementX || event.webkitMovementX || 0;
                var movementY = event.movementY || event.mozMovementY || event.webkitMovementY || 0;
    
                app.camera.rotateX(-movementY/1000)
                app.camera.rotateY(-movementX/1000)
    
            }
Просмотр 3 сообщений - с 1 по 3 (из 3 всего)
  • Для ответа в этой теме необходимо авторизоваться.