/
difight
/
ruEngine
Обзор
Документация
Войти
/
difight
/
ruEngine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
client/src/engine/core/states/BaseGameStateHandler.ts
38 строк
2 KB
Andrey Bashkirev
refactor and add readme
30 июл 2025, 19:33
30 июл 2025, 19:33
714c914
Код
Авторство
О чём код?
import { GameStateManager } from "./GameStateManager"; /** * Базовый абстрактный обработчик состояния игры. * Все игровые состояния должны наследоваться от этого класса. */ export abstract class BaseGameStateHandler { /** Менеджер игровых состояний */ protected readonly gameStateManager: GameStateManager; /** Канвас для рендера */ protected readonly canvas: HTMLCanvasElement; /** Контекст рендера 2D */ protected readonly ctx: CanvasRenderingContext2D; /** * @param gameStateManager Менеджер игровых состояний * @param canvas HTML-канвас для рендера * @throws {Error} если не удалось получить 2D-контекст */ constructor(gameStateManager: GameStateManager, canvas: HTMLCanvasElement) { this.gameStateManager = gameStateManager; this.canvas = canvas; const context = canvas.getContext("2d"); if (!context) { throw new Error("Failed to get 2D rendering context"); } this.ctx = context; } /** Вызывается при активации состояния */ public abstract onActivate(): void; /** Вызывается при деактивации состояния */ public abstract onDeactivate(): void; /** Логика обновления состояния */ public abstract onUpdate(deltaTime: number): void; /** Логика рендера состояния */ public abstract onRender(): void; }