game: extract types

This commit is contained in:
He4eT 2025-06-06 23:54:26 +02:00
commit b41c0c4a4f

81
game.js
View file

@ -23,26 +23,6 @@ let currentStage = 'mainMenu'
/* State */ /* State */
/**
* @typedef {{ x: number, y: number }} Point
*/
/**
* @typedef {{ x: number, y: number }} Point
*
* @typedef {{
* screenPosition: Point,
* bounds: {
* top: number,
* right: number,
* bottom: number,
* left: number,
* },
* spriteHalfSize: number,
* wave: number,
* }} Arena
*/
/** @type {Arena} */ /** @type {Arena} */
let arena = { let arena = {
screenPosition: { screenPosition: {
@ -59,13 +39,6 @@ let arena = {
wave: 0, wave: 0,
} }
/**
* @typedef {{
* sprite: number,
* speed: number,
* position: Point,
* }} Player
*/
/** @type {Player} */ /** @type {Player} */
let player = { let player = {
sprite: 64, sprite: 64,
@ -76,25 +49,9 @@ let player = {
}, },
} }
/**
* @typedef {{
* type: keyof typeof enemyBehaviors,
* positions: Point[],
* letter: string,
* dangerZone: number,
* }} Enemy
*/
/** @type {Enemy[]} */ /** @type {Enemy[]} */
let enemies = [] let enemies = []
/**
* @typedef {{
* type: keyof typeof effectHandlers
* from: Point,
* to: Point,
* frames: number[],
* }} Effect
*/
/** @type {Effect[]} */ /** @type {Effect[]} */
let effects = [] let effects = []
@ -450,6 +407,44 @@ const [BTN_U, BTN_D, BTN_L, BTN_R, BTN_A, BTN_B, BTN_X, BTN_Y] = [
...Array(8).keys(), ...Array(8).keys(),
] ]
/* Types */
/**
* @typedef {{ x: number, y: number }} Point
*
* @typedef {{
* screenPosition: Point,
* bounds: {
* top: number,
* right: number,
* bottom: number,
* left: number,
* },
* spriteHalfSize: number,
* wave: number,
* }} Arena
*
* @typedef {{
* sprite: number,
* speed: number,
* position: Point,
* }} Player
*
* @typedef {{
* type: keyof typeof enemyBehaviors,
* positions: Point[],
* letter: string,
* dangerZone: number,
* }} Enemy
*
* @typedef {{
* type: keyof typeof effectHandlers
* from: Point,
* to: Point,
* frames: number[],
* }} Effect
*/
// <TILES> // <TILES>
// 001:1111110012222100123321001233210012222100111111000000000000000000 // 001:1111110012222100123321001233210012222100111111000000000000000000
// 002:1111111112222221123333211233332112222221111111110000000000000000 // 002:1111111112222221123333211233332112222221111111110000000000000000