80 lines
2.0 KiB
JavaScript
80 lines
2.0 KiB
JavaScript
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();
|
|
});
|
|
|