feat(#8): fix 2d camera support

This commit is contained in:
Juan Sebastián Montoya 2024-09-13 23:30:28 -05:00
parent 07c64eadeb
commit c1fe3acc11
5 changed files with 103 additions and 36 deletions

View file

@ -29,10 +29,11 @@ class Game extends GameObject {
height: GAME_HEIGHT,
percentage: 0.9,
});
const mapManagement = new MapManagement({ maps: maps });
const camera = new Camera({ map: mapManagement.selected });
const camera = new Camera({
mapManagement: new MapManagement({ maps: maps }),
});
const debug = new Debug({ debug: false });
this.gameObjects = [canvasResizer, mapManagement, camera, debug];
this.gameObjects = [canvasResizer, camera, debug];
this.canvas = canvas;
this.ctx = this.canvas.getContext("2d");
@ -42,6 +43,12 @@ class Game extends GameObject {
document.getElementById(elementId).addEventListener("click", () => {
this.onMouseClick(elementId);
});
document.addEventListener("keydown", (event) => {
this.onKeyPressed(event.key);
});
document.addEventListener("keyup", (event) => {
this.onKeyReleased(event.key);
});
});
}
@ -59,17 +66,6 @@ class Game extends GameObject {
}
}
function moveCamera(dx, dy) {
cameraX = Math.min(
Math.max(cameraX + dx, 0),
Math.floor((320 - canvasResizer.width) / TILE_SIZE)
);
cameraY = Math.min(
Math.max(cameraY + dy, 0),
Math.floor((240 - canvasResizer.height) / TILE_SIZE)
);
}
async function run() {
const game = new Game({ canvas: document.getElementById("game") });
await game.load();