2020-04-13 11:48:48 +02:00
|
|
|
const { ipcRenderer, remote } = require("electron");
|
|
|
|
var asdf = require("asdf-games");
|
|
|
|
// eslint-disable-next-line no-unused-vars
|
2020-04-16 18:42:24 +02:00
|
|
|
const { Game, KeyControls } = asdf;
|
2020-03-02 22:06:16 +01:00
|
|
|
|
2020-04-13 11:48:48 +02:00
|
|
|
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"),
|
2020-04-16 18:42:24 +02:00
|
|
|
Gameover = require(__dirname + "/../src/screens/gameover.js"),
|
|
|
|
Credits = require(__dirname + "/../src/screens/credits.js")
|
2020-04-13 11:48:48 +02:00
|
|
|
;
|
2020-02-29 14:05:19 +01:00
|
|
|
|
2020-04-13 11:48:48 +02:00
|
|
|
const window = { w: 640, h: 320 };
|
|
|
|
|
2020-04-17 00:36:18 +02:00
|
|
|
var game = new Game(window.w, window.h, true);
|
2020-04-13 11:48:48 +02:00
|
|
|
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() {
|
2020-04-16 18:42:24 +02:00
|
|
|
game.scene = new GameScreen(game, window, keys, gameOver, credits);
|
|
|
|
}
|
|
|
|
|
|
|
|
function credits() {
|
|
|
|
game.scene = new Credits(game, keys, titleScreen);
|
2020-04-13 11:48:48 +02:00
|
|
|
}
|
2020-03-02 22:06:16 +01:00
|
|
|
|
2020-04-13 11:48:48 +02:00
|
|
|
game.scene = new Logo(game, titleScreen);
|
|
|
|
|
2020-04-17 00:36:18 +02:00
|
|
|
game.run(() => {
|
|
|
|
if (keys.escape) {
|
|
|
|
toggleMenu();
|
|
|
|
keys.reset();
|
|
|
|
}
|
|
|
|
});
|
2020-04-13 11:48:48 +02:00
|
|
|
|
|
|
|
/* *********************************************************
|
|
|
|
Settings behavior
|
|
|
|
********************************************************* */
|
|
|
|
|
|
|
|
// Opening and closing of menu.
|
|
|
|
function toggleMenu() {
|
|
|
|
const menuRef = document.getElementById("menu");
|
|
|
|
menuRef.style.display = menuRef.style.display === "block" ? "none" : "block";
|
2020-04-17 00:36:18 +02:00
|
|
|
game.paused = game.paused ? false : true;
|
2020-04-13 11:48:48 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
const elements = [...document.querySelectorAll("#settings, #resume")];
|
|
|
|
elements.forEach(element => {
|
|
|
|
element.addEventListener("click", () => {
|
|
|
|
toggleMenu();
|
2020-03-15 17:23:01 +01:00
|
|
|
});
|
2020-04-13 11:48:48 +02:00
|
|
|
});
|
|
|
|
|
|
|
|
// Return to main menu button
|
|
|
|
document.getElementById("mainmenu").addEventListener("click", () => {
|
|
|
|
titleScreen();
|
|
|
|
toggleMenu();
|
|
|
|
});
|
|
|
|
|
|
|
|
// Quit Game handling.
|
|
|
|
document.getElementById("close").addEventListener("click", () => {
|
|
|
|
remote.app.quit();
|
|
|
|
});
|
|
|
|
|