From 7b79754cc0e9b2c7f4daeda8e9bc78b8bc9bf55d Mon Sep 17 00:00:00 2001 From: Thomas Weber Date: Tue, 10 Aug 2021 20:54:30 -0500 Subject: [PATCH] Request pointer lock when project started --- src/addons/pointerlock/index.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/addons/pointerlock/index.js b/src/addons/pointerlock/index.js index a0e1224..29e66ed 100644 --- a/src/addons/pointerlock/index.js +++ b/src/addons/pointerlock/index.js @@ -3,7 +3,7 @@ const run = (scaffolding) => { const vm = scaffolding.vm; const mouse = vm.runtime.ioDevices.mouse; let isLocked = false; - + const postMouseData = (e, isDown) => { const {movementX, movementY} = e; const {width, height} = scaffolding.layersRect; @@ -45,14 +45,20 @@ const run = (scaffolding) => { postMouseData(e); } }, true); - + + scaffolding.addEventListener('PROJECT_RUN_START', () => { + if (!isLocked) { + canvas.requestPointerLock(); + } + }); + document.addEventListener('pointerlockchange', () => { isLocked = document.pointerLockElement === canvas; }); document.addEventListener('pointerlockerror', (e) => { console.error('Pointer lock error', e); }); - + const oldStep = vm.runtime._step; vm.runtime._step = function (...args) { const ret = oldStep.call(this, ...args);