2020-08-07 12:21:15 -04:00
|
|
|
import GameLoop from "./Loop/GameLoop";
|
|
|
|
import Scene from "./GameState/Scene";
|
|
|
|
import Player from "./Nodes/Player";
|
|
|
|
import UIElement from "./Nodes/UIElement";
|
|
|
|
import ColoredCircle from "./Nodes/ColoredCircle";
|
|
|
|
import Color from "./Utils/Color";
|
2020-08-10 16:44:24 -04:00
|
|
|
import Button from "./Nodes/UIElements/Button";
|
2020-08-03 16:51:20 -04:00
|
|
|
|
2020-08-07 12:21:15 -04:00
|
|
|
function main(){
|
|
|
|
// Create the game object
|
|
|
|
let game = new GameLoop();
|
2020-08-10 19:13:42 -04:00
|
|
|
let gameState = game.getGameState();
|
|
|
|
|
|
|
|
let backgroundScene = gameState.createScene();
|
|
|
|
backgroundScene.setParallax(0.5, 0.5);
|
|
|
|
let mainScene = gameState.createScene();
|
|
|
|
let foregroundLayer = gameState.createScene();
|
|
|
|
foregroundLayer.setParallax(1.5, 1.5);
|
|
|
|
let uiLayer = gameState.createScene();
|
|
|
|
uiLayer.setParallax(0, 0);
|
|
|
|
let pauseMenu = gameState.createScene();
|
|
|
|
pauseMenu.setParallax(0, 0);
|
2020-08-07 12:21:15 -04:00
|
|
|
|
|
|
|
// Initialize GameObjects
|
2020-08-10 19:13:42 -04:00
|
|
|
let player = mainScene.canvas.add(Player);
|
|
|
|
mainScene.getViewport().follow(player);
|
2020-08-07 12:21:15 -04:00
|
|
|
|
2020-08-10 19:13:42 -04:00
|
|
|
let recordButton = uiLayer.canvas.add(Button);
|
2020-08-07 12:21:15 -04:00
|
|
|
recordButton.setSize(100, 50);
|
|
|
|
recordButton.setText("Record");
|
|
|
|
recordButton.setPosition(400, 30);
|
2020-08-10 13:19:59 -04:00
|
|
|
recordButton.onClickEventId = "record_button_press";
|
2020-08-07 12:21:15 -04:00
|
|
|
|
2020-08-10 19:13:42 -04:00
|
|
|
let stopButton = uiLayer.canvas.add(Button);
|
2020-08-07 12:21:15 -04:00
|
|
|
stopButton.setSize(100, 50);
|
|
|
|
stopButton.setText("Stop");
|
|
|
|
stopButton.setPosition(550, 30);
|
2020-08-10 13:19:59 -04:00
|
|
|
stopButton.onClickEventId = "stop_button_press";
|
2020-08-07 12:21:15 -04:00
|
|
|
|
2020-08-10 19:13:42 -04:00
|
|
|
let playButton = uiLayer.canvas.add(Button);
|
2020-08-07 12:21:15 -04:00
|
|
|
playButton.setSize(100, 50);
|
|
|
|
playButton.setText("Play");
|
|
|
|
playButton.setPosition(700, 30);
|
2020-08-10 13:19:59 -04:00
|
|
|
playButton.onClickEventId = "play_button_press";
|
2020-08-07 12:21:15 -04:00
|
|
|
|
2020-08-10 19:13:42 -04:00
|
|
|
let cycleFramerateButton = uiLayer.canvas.add(Button);
|
2020-08-07 12:21:15 -04:00
|
|
|
cycleFramerateButton.setSize(150, 50);
|
|
|
|
cycleFramerateButton.setText("Cycle FPS");
|
|
|
|
cycleFramerateButton.setPosition(5, 400);
|
|
|
|
let i = 0;
|
|
|
|
let fps = [15, 30, 60];
|
2020-08-10 13:19:59 -04:00
|
|
|
cycleFramerateButton.onClick = () => {
|
2020-08-07 12:21:15 -04:00
|
|
|
game.setMaxFPS(fps[i]);
|
|
|
|
i = (i + 1) % 3;
|
|
|
|
}
|
|
|
|
|
2020-08-10 19:13:42 -04:00
|
|
|
let pauseButton = uiLayer.canvas.add(Button);
|
2020-08-07 12:21:15 -04:00
|
|
|
pauseButton.setSize(100, 50);
|
|
|
|
pauseButton.setText("Pause");
|
|
|
|
pauseButton.setPosition(700, 400);
|
2020-08-10 13:19:59 -04:00
|
|
|
pauseButton.onClick = () => {
|
2020-08-10 19:13:42 -04:00
|
|
|
mainScene.setPaused(true);
|
|
|
|
pauseMenu.enable();
|
2020-08-07 12:21:15 -04:00
|
|
|
}
|
|
|
|
|
2020-08-10 19:13:42 -04:00
|
|
|
let modalBackground = pauseMenu.canvas.add(UIElement);
|
2020-08-07 12:21:15 -04:00
|
|
|
modalBackground.setSize(400, 200);
|
|
|
|
modalBackground.setBackgroundColor(new Color(0, 0, 0, 0.4));
|
|
|
|
modalBackground.setPosition(200, 100);
|
|
|
|
|
2020-08-10 19:13:42 -04:00
|
|
|
let resumeButton = pauseMenu.canvas.add(Button);
|
2020-08-07 12:21:15 -04:00
|
|
|
resumeButton.setSize(100, 50);
|
|
|
|
resumeButton.setText("Resume");
|
|
|
|
resumeButton.setPosition(400, 200);
|
2020-08-10 13:19:59 -04:00
|
|
|
resumeButton.onClick = () => {
|
2020-08-10 19:13:42 -04:00
|
|
|
mainScene.setPaused(false);
|
|
|
|
pauseMenu.disable();
|
2020-08-07 12:21:15 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
for(let i = 0; i < 10; i++){
|
2020-08-10 19:13:42 -04:00
|
|
|
mainScene.canvas.add(ColoredCircle);
|
2020-08-07 12:21:15 -04:00
|
|
|
}
|
|
|
|
|
2020-08-10 19:13:42 -04:00
|
|
|
for(let i = 0; i < 20; i++){
|
|
|
|
let cc = backgroundScene.canvas.add(ColoredCircle);
|
|
|
|
cc.setSize(30, 30);
|
|
|
|
cc.setColor(cc.getColor().darken().darken())
|
|
|
|
cc.getColor().a = 0.8;
|
|
|
|
}
|
2020-08-07 12:21:15 -04:00
|
|
|
|
2020-08-10 19:13:42 -04:00
|
|
|
for(let i = 0; i < 30; i++){
|
|
|
|
let cc = foregroundLayer.canvas.add(ColoredCircle);
|
|
|
|
cc.setSize(80, 80);
|
|
|
|
cc.setColor(cc.getColor().lighten().lighten())
|
|
|
|
cc.getColor().a = 0.5;
|
|
|
|
}
|
2020-08-07 12:21:15 -04:00
|
|
|
|
2020-08-10 19:13:42 -04:00
|
|
|
pauseMenu.disable();
|
2020-08-07 12:21:15 -04:00
|
|
|
|
|
|
|
game.start();
|
2020-08-03 16:51:20 -04:00
|
|
|
}
|
|
|
|
|
2020-08-07 12:21:15 -04:00
|
|
|
main();
|