diff --git a/packages/frontend/src/utility/room/engine.ts b/packages/frontend/src/utility/room/engine.ts index ee56ea30d3..f309761229 100644 --- a/packages/frontend/src/utility/room/engine.ts +++ b/packages/frontend/src/utility/room/engine.ts @@ -501,7 +501,7 @@ export class RoomEngine extends EventEmitter { } public isSitting = false; - private fps: number | null = 30; + private fps: number | null = null; private disposed = false; public domEvents: EventEmitter<{ @@ -564,7 +564,7 @@ export class RoomEngine extends EventEmitter { this.camera = new BABYLON.UniversalCamera('camera', new BABYLON.Vector3(0, cm(130), cm(0)), this.scene); this.camera.inputs.removeByType('FreeCameraKeyboardMoveInput'); - this.camera.inputs.add(new HorizontalCameraKeyboardMoveInput(this.camera, this.fps)); + this.camera.inputs.add(new HorizontalCameraKeyboardMoveInput(this.camera)); this.camera.attachControl(this.canvas); this.camera.minZ = cm(1); this.camera.maxZ = cm(2000); diff --git a/packages/frontend/src/utility/room/utility.ts b/packages/frontend/src/utility/room/utility.ts index a2a03d4787..2cce48f6e6 100644 --- a/packages/frontend/src/utility/room/utility.ts +++ b/packages/frontend/src/utility/room/utility.ts @@ -54,14 +54,12 @@ export class HorizontalCameraKeyboardMoveInput extends BABYLON.BaseCameraPointer onCanvasBlurObserver = null; onKeyboardObserver = null; public canMove = true; - private fps: number; - constructor(camera: BABYLON.UniversalCamera, fps = 60) { + constructor(camera: BABYLON.UniversalCamera) { super(); this.camera = camera; this.scene = this.camera.getScene(); this.engine = this.scene.getEngine(); - this.fps = fps; } attachControl() { @@ -136,7 +134,7 @@ export class HorizontalCameraKeyboardMoveInput extends BABYLON.BaseCameraPointer dir.y = 0; dir.normalize(); const rate = this.preShift ? 3 : 1; - const moveSpeed = 6 / this.fps; + const moveSpeed = 0.1 * this.scene.getAnimationRatio(); const move = dir.scale(moveSpeed * rate); if (this.canMove) {