feat(#8): fix 2d camera support
This commit is contained in:
parent
07c64eadeb
commit
c1fe3acc11
5 changed files with 103 additions and 36 deletions
24
index.js
24
index.js
|
@ -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();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue