SuperAPI AI 工具集

bevy-mechanic-revival

编程与开发

查看项目

更新于 10-16 07:08

技能介绍

本技能用于在 Bevy 引擎中实现“倒地与复活”机制。适用时机:当某个角色(actor)被击倒、可被复活或需要重生时使用。

用途 面向 Bevy 0.20+ 的 ECS 实现方案,覆盖角色倒地、盟友救援、复活进度、检查点重生等一整套循环。关键词:Bevy、复活、倒地、重生、ECS。

主要能力

  1. 倒地状态:生命值归零的角色被插入倒地标记组件,开始记录倒地经过时间。
  2. 复活进度:盟友在范围内时填充复活进度条,进度满后清除倒地标记并恢复生命值;盟友离开范围则移除复活进度。
  3. 检查点重生:倒计时结束后将角色移动到检查点位置并回满生命值。
  4. 检查点覆盖:玩家触碰检查点标记时更新检查点资源中的重生姿态。

ECS 形态

  • 组件:倒计时标记(Downed)与复活进度(Reviving)由使用者自行定义。
  • 资源:跨运行共享的表格存放在资源中(bevy-data-resources),而不是自动加载。
  • 系统:在 Update 或固定时间步上修改这些组件。当伤害必须先于死亡结算时使用 .chain() 排序。
  • 消息:一次性事实(命中、拾取、任务推进)通过 bevy-events-messaging 处理;本文件不新增事件类型名称。
  • 范围:倒地时间、复活进度和最后检查点都是组件。这里的重叠判定是距离检测,之后可以替换为物理求解器。

使用方式(代码示例要点) 示例使用 bevy = "0.20",edition 2021。定义 Health、Downed、Reviving、Ally、CheckpointMarker、Player 等组件和 Checkpoint 资源。

  • apply_down:遍历没有 Downed 的角色,当 health.current <= 0.0 时插入 Downed { elapsed: 0.0 }。
  • tick_revive:在固定时间步上累加 downed.elapsed,用距离小于 2.0 判断是否有盟友在附近;不在附近则移除 Reviving;在附近则累加复活进度,进度达到 2.0 时回满生命并移除 Downed 与 Reviving;否则插入 Reviving { progress: 0.0, needed: 2.0 }。
  • move_to_checkpoint:当 downed.elapsed >= 8.0 时,将角色位置设为检查点位置、回满生命并移除 Downed。
  • RevivalPlugin:在 FixedUpdate 上注册 move_to_checkpoint,并插入默认 Checkpoint。
  • capture_checkpoint:玩家与检查点标记距离小于 1.2 时,覆盖检查点资源中的位置。

适用场景 需要生命值归零后倒地、盟友救援、倒计时结束后重生回检查点的游戏逻辑,例如合作类或动作类项目中角色倒地与复活的实现。

限制

  • 目标版本为 Bevy 0.20+。
  • 不要在文档 URL 中固定 /0.20.0/;链接保持指向 latest,0.20 目标只在正文中陈述一次。
  • 不要从两个无序系统可变查询同一组件;调度会并行运行系统,除非用 .chain() 排序。
  • 不要在此引入物理、导航、网络或 XR crate;本技能只使用官方文档记载的 Bevy crate 与模块。
  • 不要使用 Godot 的节点、资源或信号类型;Bevy 代码保持 ECS 惯用写法并只使用官方记载的 Bevy API。
  • 不要编造 API 或把未命名的第三方 crate 作为求解方案。
  • 需要文档之外未记载的 API 时,先查阅官方文档。

依赖与关联技能 前置:bevy-master(枢纽与调度)、bevy-ecs-composition(组件与系统)、bevy-combat-system(生命值归零)、bevy-data-resources(表格与定义)、bevy-events-messaging(一次性事实)。 补充:bevy-state-machines(模式标记)、godot-mechanic-revival(Godot 引擎上的同深度复活实现)。 下游消费者:暂无。

关于定价、收费或具体平台支持等信息,资料中暂未提供。