Newer
Older
import Canvas from "../../hampsterengine/src/canvas.js";
import Engine from "../../hampsterengine/src/engine.js";
import {rm_mainMenu} from "./rooms/mainMenu";
import {rm_game} from "./rooms/game";
import {rm_DEBUG_button} from "./rooms/debug_button";
import {rm_DEBUG_mouse} from "./rooms/debug_mouse";
const canvas = new Canvas('canvas');
const engine = new Engine(canvas);
const assets = engine.assetStore;
// assets.addSoundBoxAudio('mus_DEMO', mus_DEMOSONG, new SoundBox());
canvas.ctx.setTransform(canvas.pixelRatio, 0, 0, canvas.pixelRatio, 0, 0);
canvas.ctx.imageSmoothingEnabled = false;
let lastClickPos = {
x: 0, y: 0
}
window.lastClickPos = lastClickPos;
engine.registerRoom(rm_mainMenu, 'mainMenu');
engine.registerRoom(rm_game, 'game');
//Debug rooms. Comment out to not include in build (esbuild will not import them if they arent used)
engine.registerRoom(rm_DEBUG_button, 'debug_button');
engine.registerRoom(rm_DEBUG_mouse, 'debug_mouse');
engine.frames++;
canvas.fill(engine.room.bgColor ?? 'black');
engine.step();
engine.draw();
engine.drawGui();
engine.drawCursor();
}
console.debug(engine.rooms);
if (document.location.hash) {
console.log('Requesting room', document.location.hash.substring(1));
engine.room = engine.getRoomIndex(document.location.hash.substring(1));
} else {
engine.room = engine.getRoomIndex('mainMenu');
}
// Ensure assets are loaded.
function load() {
if (engine.loading) {
engine.loadLoop();