Skip to content
Snippets Groups Projects
Select Git revision
  • 5386a9484533d2882cf09a65478d34f07a948170
  • main default protected
2 results

main.js

Blame
  • main.js 3.06 KiB
    
    import Canvas from "../../hampsterengine/src/canvas.js";
    import Engine from "../../hampsterengine/src/engine.js";
    import {Room} from "../../hampsterengine/src/things.js";
    
    import {Logo, MainMenuButton} from "./objects.js";
    
    // Rooms
    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;
    
    canvas.width = 640;
    canvas.height = 480;
    canvas.pixelRatio = 2;
    canvas.ctx.setTransform(canvas.pixelRatio, 0, 0, canvas.pixelRatio, 0, 0);
    canvas.ctx.imageSmoothingEnabled = false;
    
    let lastClickPos = {
        x: 0, y: 0
    }
    
    window.lastClickPos = lastClickPos;
    
    const rm_MainMenu = new Room();
    rm_MainMenu.bgColor = 'black';
    
    const logo = new Logo();
    logo.x = 30;
    logo.y = 45;
    logo.align = 2
    rm_MainMenu.things.push(logo);
    
    const newGameButton = new MainMenuButton('New Game');
    newGameButton.x = 30;
    newGameButton.y = 70;
    rm_MainMenu.things.push(newGameButton);
    
    rm_MainMenu.drawGui = _ => {
        canvas.setFillColor('white');
        canvas.drawText("(c) bye 2024", 30, canvas.height-45,{
            font: '8px serif'
        });
    }
    
    engine.registerRoom(rm_MainMenu, 'mainMenu');
    
    engine.registerRoom(rm_DEBUG_button, 'debug_button');
    engine.registerRoom(rm_DEBUG_mouse, 'debug_mouse');
    
    // const rm_DEBUG_music = new Room();
    // rm_DEBUG_music.audio = document.createElement("audio");
    // rm_DEBUG_music.start = _=> {
    //     canvas.pixelRatio =1;
    //     canvas.ctx.setTransform(1, 0, 0, 1, 0, 0);
    //
    //     const player = new Soundbox();
    //     const audio = rm_DEBUG_music.audio;
    //     player.init(song);
    //
    //     let done = false;
    //     setInterval(_=>{
    //         if (done) return;
    //
    //         done = player.generate() >= 1;
    //
    //         if (done) {