用途:@blecsd/game 提供构建终端游戏的高层 API,把 blECSd 的核心 ECS 世界、输入系统和游戏循环封装为 createGame() 工厂,遵循 blECSd 函数式编程规则。
安装与导入:pnpm add @blecsd/game;对等依赖 blecsd >= 0.7.0;导入 import { createGame } from '@blecsd/game'。
主要能力:createGame(config?) 返回 Game 接口,config 可设 title、width、height、targetFPS(默认 60)、mouse、alternateScreen、hideCursor 以及 fixedTimestep(tickRate、maxUpdatesPerFrame、interpolate)。控件工厂包括 createBox、createText、createButton、createInput、createTextarea、createTextbox、createCheckbox、createRadioButton、createRadioSet、createSelect、createSlider、createProgressBar、createList、createForm,均返回实体 ID。
输入与动作:onKey、onAnyKey、isKeyDown、onMouse 处理输入;defineActions 可把多键与鼠标按钮映射为命名动作,用 isActionActive 查询。
循环:onUpdate 为可变时间步(deltaTime 为秒);fixedTimestep 配合 onFixedUpdate(fixedDt, tick) 做确定性物理;onRender(alpha) 用插值因子平滑渲染。生命周期含 start、stop、pause、resume、quit,状态查询 isRunning、isPaused,getStats 返回 fps、frameTime、updateTime、renderTime、entityCount。
高级用法:可通过 game.world 直接用 blECSd 的 addEntity、addComponent 等操作底层 ECS。
适用场景与限制:适合终端游戏、roguelike、物理小游戏与统计面板等。资料未提供平台兼容性、收费或性能数据,暂未提供。建议用 defineActions 统一输入、物理用固定时间步并设 maxUpdatesPerFrame 防死亡螺旋、用 interpolate 平滑渲染、结束时 quit 恢复终端状态。所有 blECSd 规则适用:无类、无 this、纯函数、早返回、边界处 Zod 校验。