用途:这是 SDR 引擎的参考实现示例(Grassland Gem Rush),用于演示库的正确用法,而非可直接套用的游戏模板。生成的游戏在类型、主题、机制与风格上都会有很大差异,但其中的 ECS 配置、输入处理、渲染同步与系统顺序模式适用于所有生成的游戏。
主要能力与演示要点:
- bitECS 0.4 组件设计:组件为带数组属性的普通对象,按实体 ID 索引访问数据,支持标签组件。
- addComponent 签名:bitECS 0.4 使用 addComponent(world, eid, Component),而非旧版顺序。
- 查询:直接使用 query(world, [...]),没有 defineQuery。
- 生命周期:用 observe 配合 onAdd/onRemove,而非 enterQuery/exitQuery,在实体获得 Position+Visual 时创建 Phaser 对象,失去时销毁。
- 数据与显示分离:ECS 组件只存可序列化数据,Phaser GameObjects 存放在以实体 ID 为键的独立 Map 中,由渲染系统同步。
- 系统顺序:每帧按输入、移动、边界、碰撞、收集、渲染的确定性顺序执行。
- 输入:带死区处理与对角线归一化,支持手柄与键盘双输入。
- 帧率无关移动:位置按 dt(秒)与速度更新。
- 无精灵图时可用 Phaser 矩形代替,使生成游戏不依赖素材资源。
- 服务器房间:导出 GeneratedRoomLogic,含 onUpdate、onPlayerAction、checkWinCondition 三个方法。
文件位置:客户端 packages/generator/src/examples/client/game.ts;服务器 packages/generator/src/examples/server/room.ts;元数据 packages/generator/src/examples/metadata.json。
限制:具体安装命令、版本依赖、收费与平台支持信息暂未提供。