用途
这是一个面向 Bevy 引擎的塔防类型路由技能(thin router)。它用于在固定时间步长下处理塔防的核心玩法:放置防御塔、让敌人(creeps)沿路径点(waypoints)行进、以及消耗金币。该技能本身不实现具体领域功能,而是把塔防相关的领域工作路由到下方列出的 Bevy 子技能。
主要能力
- 以 ECS 方式组织塔防逻辑:组件保存每个实体的塔防标志数据,资源保存全局计数器(分数、波次索引、随机种子)。
- 系统在 Update 或固定时间步长中读取这些组件,并在后续系统需要看到结果时用 .chain() 排序。
- 游戏模式切换通过 bevy-state-machines 处理,不自行发明类型插件。
- 提供从 Godot 迁移的对照表:Godot 的类型场景树对应实体加领域技能;Autoload 导演对应资源而非单例节点;循环的信号总线对应 bevy-events-messaging。
路由
- bevy-game-loop-waves:敌人波次。
- bevy-navigation:路径与导航网格。
- bevy-combat-system:防御塔射击。
- bevy-economy-system:建造花费。
使用方式
技能给出了塔防示例代码,包括:
- 敌人沿路径点列表行进:当到达当前路径点时前进到下一个路径点,路径点耗尽则销毁实体。
- 防御塔射击:冷却结束且射程内有敌人时,对最近的敌人造成伤害并重置冷却。
- 出售防御塔:按键触发后返还金币并销毁该防御塔,由同一个系统负责两处写入。
示例中定义了 Tower、Creep 组件,Path、Gold 资源,以及 march_creeps、towers_fire、sell 等系统,并通过 TowerDefensePlugin 在 Startup 和 FixedUpdate 中注册。
适用场景
适用于使用 Bevy 0.20+ 开发塔防类游戏,需要处理防御塔、敌人、路径点与金币等基础机制的场景。
限制
- 该技能是薄路由,不拥有第二套实现,领域工作由下方子技能承担。
- 导航网格属于 bevy-navigation,不在本技能范围内。
- 不得在文档 URL 中固定 /0.20.0/,0.20 目标只在正文中说明一次。
- 不得从两个无序系统可变查询同一组件,除非用 .chain() 排序。
- 不得在本技能中发明物理、导航、网络或 XR crate,也不得使用 Godot 类型或发明类型 API。
- 目标版本:Bevy 0.20+。
相关技能
- 前置:bevy-master(ECS 所有权与调度)、bevy-ecs-composition(生成与查询形态)。
- 互补:godot-genre-tower-defense、bevy-game-loop-waves、bevy-navigation、bevy-combat-system、bevy-economy-system。
- 下游/消费者:无。
- 主技能:bevy-master。