SuperAPI AI 工具集

bevy-genre-survival

编程与开发

查看项目

更新于 10-16 06:08

技能介绍

用途

本技能用于在 Bevy 引擎中实现生存类游戏的核心循环,具体覆盖生命体征(饥饿、温暖)、昼夜时钟以及合成输入三部分。它把这三类数据定义为开发者自己拥有的组件与资源,不引入任何引擎内置的生存模块或虚构的 genre API。

主要能力

  • 生命体征:以组件形式保存每个实体的饥饿与温暖值,在固定时间步中按速率消耗;夜间寒冷时段温暖消耗更快,进食与生火可恢复。
  • 昼夜时钟:以资源形式保存全局小时数与每日时长,按固定时间步推进,并驱动夜间判定。
  • 合成输入:以组件形式保存每个营地或玩家自己的物品袋,配方按命名数量从袋中扣除材料,再写入合成后的物品堆叠。
  • ECS 结构:组件承载每实体标志数据,资源承载运行级计数器(分数、波次索引、种子),系统在 Update 或固定时间步读取,必要时用 .chain() 排序。
  • 所有权划分:明确哪些数据由本技能负责,哪些交由关联技能(如物品、采集、营地布局)。

使用方式

技能提供 Rust 代码示例,展示如何定义 Vitals 组件与 DayClock 资源、编写 tick_day、drain_vitals、apply_meals 等系统,并通过 SurvivalPlugin 注册资源、消息与系统。示例还包含物品袋 Bag 组件、count_of、spend、craft_bandage 等合成逻辑,以及 spawn_survivor 生成满状态幸存者。依赖声明为 bevy = "0.20"。

适用场景

适用于使用 Bevy 0.20+ 构建生存类游戏的开发者,尤其是需要自行掌控生命体征、昼夜循环与合成输入数据所有权的项目。

限制

  • 物品堆叠与营地布局不在本技能范围内,需使用关联技能。
  • 不涉及物理、导航、网络或 XR 相关 crate。
  • 不发明新的引擎类型或 genre 插件。
  • 文档 URL 不固定版本号,0.20 目标仅在正文中说明一次。
  • 两个无序系统不得同时可变查询同一组件,必须用 .chain() 排序或拆分。