From 3d4235766df6a296b9befe51fe92653f4b2d4c2e Mon Sep 17 00:00:00 2001 From: Mal Date: Thu, 4 Apr 2024 21:48:01 +0200 Subject: [PATCH] Frame rate measurer deleted --- js/FrameRateMeasurer.js | 84 ----------------------------- js/Game.js | 18 ++----- js/events/FrameRateMeasuredEvent.js | 9 ---- 3 files changed, 4 insertions(+), 107 deletions(-) delete mode 100644 js/FrameRateMeasurer.js delete mode 100644 js/events/FrameRateMeasuredEvent.js diff --git a/js/FrameRateMeasurer.js b/js/FrameRateMeasurer.js deleted file mode 100644 index 97d3533..0000000 --- a/js/FrameRateMeasurer.js +++ /dev/null @@ -1,84 +0,0 @@ -import FrameRateMeasuredEvent from "./events/FrameRateMeasuredEvent.js"; - -export default class FrameRateMeasurer -{ - constructor(rounds = 30) - { - this.rounds = rounds; - this.round = 0; - this.lastTimestamp = undefined; - this.frameDurations = []; - - window.requestAnimationFrame( - (timestamp) => { - this.measureFrameRate(timestamp); - } - ); - } - - measureFrameRate(timestamp) - { - if (this.lastTimestamp !== undefined) { - this.round++; - this.frameDurations.push(timestamp - this.lastTimestamp); - - this.lastTimestamp = timestamp; - - if (this.round < this.rounds) { - window.requestAnimationFrame( - (timestamp) => { - this.measureFrameRate(timestamp); - } - ); - } else { - window.dispatchEvent(new FrameRateMeasuredEvent(this.getAverageFrameRate())); - } - } else { - this.round = 0; - this.lastTimestamp = timestamp; - window.requestAnimationFrame( - (timestamp) => { - this.measureFrameRate(timestamp); - } - ); - } - - this.lastTimestamp = timestamp - } - - getAverageFrameRate() - { - let frameDurationSum = 0; - - this.frameDurations.forEach( - (duration) => { - frameDurationSum += duration; - } - ); - - let durationAverage = frameDurationSum / this.frameDurations.length; - - return 1000 / durationAverage; - } - - getFrameRate() - { - const DEFAULT_FRAME_RATES = [30, 60, 120]; - - let averageFrameRate = this.getAverageFrameRate(); - let closestDistance = {frameRate: 0, distance: 99999}; - - DEFAULT_FRAME_RATES.forEach( - (frameRate) => { - let distance = Math.abs(frameRate - averageFrameRate); - - if (closestDistance.distance > distance) { - closestDistance.frameRate = frameRate; - closestDistance.distance = distance; - } - } - ); - - return closestDistance.frameRate; - } -} \ No newline at end of file diff --git a/js/Game.js b/js/Game.js index 15dc84f..d6bc28d 100644 --- a/js/Game.js +++ b/js/Game.js @@ -8,8 +8,6 @@ import UserInterface from "./ui/UserInterface.js"; import Key from "./Key.js"; import Setting from "./Setting.js"; import {EventBus} from "./events/EventBus.js"; -import InterfaceEvent from "./events/InterfaceEvent.js"; -import FrameRateMeasurer from "./FrameRateMeasurer.js"; export class Game @@ -18,8 +16,8 @@ export class Game constructor(level) { this.level = level; - this.fps = 0; - this.frameDuration = 0; + this.fps = 60; + this.frameDuration = 1000.0 / this.fps; this.lastRendered = undefined; this.lastTimestamp = undefined; this.canvas = document.getElementById('canvas'); @@ -216,17 +214,9 @@ export class Game this.architecture.setMovableToStartPosition(this.mrCroc); this.architecture.setMovableToTargetPosition(this.gisela); - EventBus.addEventListener( - InterfaceEvent.FRAME_RATE_MEASURED, - (event) => { - this.isPaused = false; - this.fps = event.frameRate; - this.frameDuration = 1000.0 / this.fps; - window.requestAnimationFrame(loopFunction); - } - ); + this.isPaused = false; - new FrameRateMeasurer(); + window.requestAnimationFrame(loopFunction); } isChromeBrowser() diff --git a/js/events/FrameRateMeasuredEvent.js b/js/events/FrameRateMeasuredEvent.js deleted file mode 100644 index 73ad6d6..0000000 --- a/js/events/FrameRateMeasuredEvent.js +++ /dev/null @@ -1,9 +0,0 @@ -import InterfaceEvent from "./InterfaceEvent.js"; - -export default class FrameRateMeasuredEvent extends Event -{ - constructor(frameRate) { - super(InterfaceEvent.FRAME_RATE_MEASURED); - this.frameRate = frameRate; - } -} \ No newline at end of file