const { ipcRenderer, remote } = require("electron"); var asdf = require("asdf-games"); // eslint-disable-next-line no-unused-vars const { Game, KeyControls } = asdf; const Logo = require(__dirname + "/../src/screens/logo.js"), Title = require(__dirname + "/../src/screens/title.js"), Tutorial = require(__dirname + "/../src/screens/tutorial.js"), GameScreen = require(__dirname + "/../src/screens/game.js"), Gameover = require(__dirname + "/../src/screens/gameover.js"), Credits = require(__dirname + "/../src/screens/credits.js") ; const window = { w: 640, h: 320 }; var game = new Game(window.w, window.h, true); ipcRenderer.send("resize", window); const keys = new KeyControls(); function titleScreen() { game.scene = new Title(game, keys, newGame, tutorial, remote.app.quit); } function tutorial() { game.scene = new Tutorial(game, keys, titleScreen); } function gameOver() { game.scene = new Gameover(game, keys, titleScreen); } function newGame() { game.scene = new GameScreen(game, window, keys, gameOver, credits); } function credits() { game.scene = new Credits(game, keys, titleScreen); } game.scene = new Logo(game, titleScreen); game.run(() => { if (keys.escape) { toggleMenu(); keys.reset(); } }); /* ********************************************************* Settings behavior ********************************************************* */ // Opening and closing of menu. function toggleMenu() { const menuRef = document.getElementById("menu"); menuRef.style.display = menuRef.style.display === "block" ? "none" : "block"; game.paused = game.paused ? false : true; } const elements = [...document.querySelectorAll("#settings, #resume")]; elements.forEach(element => { element.addEventListener("click", () => { toggleMenu(); }); }); // Return to main menu button document.getElementById("mainmenu").addEventListener("click", () => { titleScreen(); toggleMenu(); }); // Quit Game handling. document.getElementById("close").addEventListener("click", () => { remote.app.quit(); });