something
This commit is contained in:
parent
754c863e60
commit
cc51c3831d
0
src/classes/GUI.ts
Normal file
0
src/classes/GUI.ts
Normal file
15
src/classes/Game.ts
Normal file
15
src/classes/Game.ts
Normal file
@ -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);
|
||||||
|
}
|
||||||
|
}
|
@ -5,6 +5,7 @@ export enum CellType {
|
|||||||
Path,
|
Path,
|
||||||
NoBuild,
|
NoBuild,
|
||||||
Build,
|
Build,
|
||||||
|
Undefined,
|
||||||
}
|
}
|
||||||
|
|
||||||
export class Cell {
|
export class Cell {
|
||||||
@ -33,8 +34,11 @@ export class Grid {
|
|||||||
x: x,
|
x: x,
|
||||||
y: y,
|
y: y,
|
||||||
});
|
});
|
||||||
for (let index = 0; index < rows * columns; index++) {
|
for (let y = 0; y < rows; y++) {
|
||||||
// const cell = new Cell();
|
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 {
|
pixelsToGridUnits(pixels: number): number {
|
||||||
return pixels / this.getPixelScalingFactor();
|
return pixels / this.getPixelScalingFactor();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
render() {}
|
||||||
}
|
}
|
||||||
|
5
src/classes/Renderer.ts
Normal file
5
src/classes/Renderer.ts
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
import * as PIXI from "pixi.js";
|
||||||
|
|
||||||
|
export class Renderer {
|
||||||
|
constructor() {}
|
||||||
|
}
|
31
src/classes/Scenes.ts
Normal file
31
src/classes/Scenes.ts
Normal file
@ -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;
|
||||||
|
}
|
@ -1,12 +1,15 @@
|
|||||||
import * as PIXI from "pixi.js";
|
import * as PIXI from "pixi.js";
|
||||||
|
import { Game } from "./classes/Game.ts";
|
||||||
|
import { SceneType } from "./classes/Scenes.ts";
|
||||||
(async () => {
|
(async () => {
|
||||||
const app = new PIXI.Application();
|
const app = new PIXI.Application();
|
||||||
await app.init({
|
await app.init({
|
||||||
width: 640,
|
width: 640,
|
||||||
height: 360,
|
height: 360,
|
||||||
resizeTo: document.body,
|
resizeTo: document.body,
|
||||||
|
backgroundColor: "white",
|
||||||
});
|
});
|
||||||
|
|
||||||
document.body.appendChild(app.canvas);
|
document.body.appendChild(app.canvas);
|
||||||
|
globalThis.Game = new Game(SceneType.MainMenu);
|
||||||
})();
|
})();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user