diff --git a/modules/game-objects/camera.js b/modules/game-objects/camera.js index 064ab0f..5e24e70 100644 --- a/modules/game-objects/camera.js +++ b/modules/game-objects/camera.js @@ -2,13 +2,21 @@ import { TILE_SIZE } from "../constants.js"; import { GameObject } from "./game-object.js"; export class Camera extends GameObject { - constructor({ gameObjects = [], x = 0, y = 0, width = 160, height = 120 }) { + constructor({ + gameObjects = [], + x = 0, + y = 0, + width = 160, + height = 120, + speed = 1, + }) { super({ x, y }); this.gameObjects = gameObjects; this.x = x; this.y = y; this.width = width; this.height = height; + this.speed = speed; this.keys = [ { key: "ArrowUp", pressed: false, value: [0, -1] }, { key: "ArrowDown", pressed: false, value: [0, 1] }, @@ -49,11 +57,11 @@ export class Camera extends GameObject { const [item] = this.gameObjects; const { height, width } = item.selected ?? item; this.x = Math.min( - Math.max(this.x + dx * Math.floor(delta * 100), 0), + Math.max(this.x + dx * Math.floor(delta * this.speed * 100), 0), width * TILE_SIZE - this.width ); this.y = Math.min( - Math.max(this.y + dy * Math.floor(delta * 100), 0), + Math.max(this.y + dy * Math.floor(delta * this.speed * 100), 0), height * TILE_SIZE - this.height ); }