From cc51c3831dbd1bc20ad8b2b2f80544715c359c7d Mon Sep 17 00:00:00 2001 From: koneko <67551503+koneko@users.noreply.github.com> Date: Sun, 22 Sep 2024 19:47:05 +0200 Subject: [PATCH] something --- src/classes/GUI.ts | 0 src/classes/Game.ts | 15 +++++++++++++++ src/classes/Grid.ts | 10 ++++++++-- src/classes/Renderer.ts | 5 +++++ src/classes/Scenes.ts | 31 +++++++++++++++++++++++++++++++ src/main.ts | 5 ++++- 6 files changed, 63 insertions(+), 3 deletions(-) create mode 100644 src/classes/GUI.ts create mode 100644 src/classes/Game.ts create mode 100644 src/classes/Renderer.ts create mode 100644 src/classes/Scenes.ts diff --git a/src/classes/GUI.ts b/src/classes/GUI.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/classes/Game.ts b/src/classes/Game.ts new file mode 100644 index 0000000..a962b9c --- /dev/null +++ b/src/classes/Game.ts @@ -0,0 +1,15 @@ +import { Renderer } from "./Renderer.ts"; +import { BaseScene, SceneType, makeSceneFromType } from "./Scenes.ts"; + +export class Game { + public Renderer: Renderer; + public currentScene: BaseScene; + constructor(sceneType: SceneType) { + this.Renderer = new Renderer(); + this.changeScene(sceneType); + } + changeScene(sceneType): void { + if (this.currentScene != undefined) this.currentScene.destroy(); + this.currentScene = makeSceneFromType(sceneType); + } +} diff --git a/src/classes/Grid.ts b/src/classes/Grid.ts index 8788799..012172b 100644 --- a/src/classes/Grid.ts +++ b/src/classes/Grid.ts @@ -5,6 +5,7 @@ export enum CellType { Path, NoBuild, Build, + Undefined, } export class Cell { @@ -33,8 +34,11 @@ export class Grid { x: x, y: y, }); - for (let index = 0; index < rows * columns; index++) { - // const cell = new Cell(); + for (let y = 0; y < rows; y++) { + for (let x = 0; x < columns; x++) { + let cell = new Cell(x, y, CellType.Undefined); + this.cells.push(cell); + } } } @@ -51,4 +55,6 @@ export class Grid { pixelsToGridUnits(pixels: number): number { return pixels / this.getPixelScalingFactor(); } + + render() {} } diff --git a/src/classes/Renderer.ts b/src/classes/Renderer.ts new file mode 100644 index 0000000..d75bb80 --- /dev/null +++ b/src/classes/Renderer.ts @@ -0,0 +1,5 @@ +import * as PIXI from "pixi.js"; + +export class Renderer { + constructor() {} +} diff --git a/src/classes/Scenes.ts b/src/classes/Scenes.ts new file mode 100644 index 0000000..09c474e --- /dev/null +++ b/src/classes/Scenes.ts @@ -0,0 +1,31 @@ +import * as PIXI from "pixi.js"; + +export function makeSceneFromType(type: SceneType) { + if (type == SceneType.MainMenu) { + return new MainMenu(); + } + if (type == SceneType.MissionSelect) { + return new MissionSelect(); + } +} + +export enum SceneType { + MainMenu, + MissionSelect, +} + +export class BaseScene { + public type: SceneType = null; + public destroy(): boolean { + return true; // return when destroyed + } +} + +export class MainMenu extends BaseScene { + public type: SceneType = SceneType.MainMenu; + public; +} + +export class MissionSelect extends BaseScene { + public type: SceneType = SceneType.MissionSelect; +} diff --git a/src/main.ts b/src/main.ts index 47cfeb9..99ead5d 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,12 +1,15 @@ import * as PIXI from "pixi.js"; - +import { Game } from "./classes/Game.ts"; +import { SceneType } from "./classes/Scenes.ts"; (async () => { const app = new PIXI.Application(); await app.init({ width: 640, height: 360, resizeTo: document.body, + backgroundColor: "white", }); document.body.appendChild(app.canvas); + globalThis.Game = new Game(SceneType.MainMenu); })();