Skip to content
写作:待补充更新:2026-05-16字数:—阅读:—维护:Azek431

创游世界战斗系统速查卡

一句话摘要

创游世界战斗系统的快速查询表,一问一答形式,帮助快速查阅战斗组件、伤害计算、技能实现和常见问题。

适合谁阅读

  • 需要快速设计战斗系统的开发者
  • 遇到战斗逻辑问题的创作者
  • 想了解战斗机制设计模式的进阶用户

你将学到什么

  • 战斗系统需要的核心组件
  • 伤害计算的实现方式
  • 生命值和死亡的处理逻辑
  • 武器和子弹的配置方法
  • 战斗系统常见问题与解决

基础概念类

Q:战斗系统需要哪些核心组件?

A:战斗系统的核心组件:

组件作用必须
物理组件让物体有碰撞和移动能力
生命组件管理生命值、受伤、死亡
伤害组件造成伤害
武器槽组件装备和使用武器可选
子弹组件发射子弹可选

Q:战斗系统的基本关系链是什么?

A

角色拥有武器槽 → 武器槽装备武器 → 
近战直接伤敌 / 远程通过子弹伤敌 → 
目标通过生命组件接收伤害 → 
命中/击杀/死亡通过事件回调处理后续

生命组件类

Q:生命组件有什么用?

A:生命组件让物体有「血条」,可以受到伤害并死亡。

核心参数

参数说明
最大生命值满血时的数值
当前生命值当前剩余血量
生命恢复每秒恢复的血量(可选)
最低生命不会低于这个值(可选)

Q:生命组件有哪些触发时机?

A

触发时机说明
当受到伤害时物体受伤时触发
当死亡时生命值降为0时触发
当生命值改变时任何生命值变化时触发

Q:受伤逻辑怎么写?

A

当受到伤害时
    获取 伤害值
    获取 当前生命值
    设置 当前生命值 = 当前生命值 - 伤害值
    播放动效 "受伤"
    显示伤害飘字 "-" + 伤害值
    
    如果 当前生命值 <= 0
        发送广播 "目标死亡"
    结束

Q:死亡逻辑怎么写?

A

当死亡时
    播放动画 "死亡"
    播放粒子特效 "消散"
    等待 0.5 秒
    销毁自身
    发送广播 "怪物死亡" 并携带文本 "怪物A"

伤害组件类

Q:伤害组件有什么用?

A:让物体可以「造成伤害」,需要配合物理组件使用。

核心参数

参数说明
基础伤害每次攻击的伤害值
攻击间隔两次攻击的最小间隔
攻击范围攻击能生效的距离
伤害类型物理/魔法(可选)

Q:伤害组件有哪些触发时机?

A

触发时机说明
当攻击时物体执行攻击时触发
当造成伤害时实际造成伤害时触发

Q:伤害计算怎么实现?

A:基础伤害计算:

当造成伤害时
    获取 攻击方.基础攻击力
    获取 防御方.防御力
    
    伤害 = 基础攻击力 - 防御力
    如果 伤害 < 1
        设置 伤害 = 1  // 最小伤害为1
    结束
    
    发送广播 "造成伤害" 并携带数字 伤害

Q:暴击怎么实现?

A

当造成伤害时
    获取 基础伤害
    获取 暴击率
    
    随机数 = 随机(1, 100)
    
    如果 随机数 <= 暴击率
        实际伤害 = 基础伤害 * 暴击倍率
        显示 "暴击!"
    否则
        实际伤害 = 基础伤害
    结束

武器与子弹类

Q:武器槽组件有什么用?

A:让角色可以「装备武器」,切换和使用武器。

核心参数

参数说明
默认武器开始时装备的武器
武器列表可以切换的武器
武器属性攻击力、攻击速度等

Q:武器槽有哪些触发时机?

A

触发时机说明
当武器切换时切换武器时触发
当使用武器时使用武器攻击时触发

Q:近战武器怎么配置?

A

武器配置:
├── 类型:近战
├── 伤害:50
├── 攻击范围:50(像素)
└── 攻击间隔:1秒

武器脚本:
当使用武器时
    播放动画 "攻击"
    获取攻击范围内的敌人
    对每个敌人造成伤害
end

Q:子弹组件有什么用?

A:让物体可以「发射子弹」,需要配合物理组件(不受重力)。

核心参数

参数说明
子弹速度飞行速度
子弹伤害命中时的伤害
子弹生命存活时间
是否穿透是否穿透目标

Q:子弹发射逻辑怎么写?

A

当发射子弹时
    获取 子弹发射位置
    获取 目标方向
    
    生成 子弹对象 在 发射位置
    设置 子弹.移动方向 = 目标方向
    设置 子弹.移动速度 = 500
    设置 子弹.伤害 = 30
    
    播放音效 "发射"
    播放粒子特效 "发射烟雾"
end

Q:子弹命中逻辑怎么写?

A

当碰撞时
    获取 碰撞对象
    
    如果 碰撞对象 有 "生命组件"
        造成伤害
        销毁子弹
    否则
        如果 子弹.是否穿透 = 假
            销毁子弹
        结束
    结束

战斗状态类

Q:战斗状态怎么管理?

A:使用属性记录战斗状态:

当进入战斗时
    设置自身属性.战斗状态 = "战斗"
    播放动效 "进入战斗"
end

当离开战斗时
    设置自身属性.战斗状态 = "非战斗"
    播放动效 "脱离战斗"
end

Q:无敌状态怎么实现?

A

当获得无敌状态时
    设置自身属性.无敌 = 真
    设置 无敌持续时间 = 3
    播放动效 "无敌光环"
    
    重复执行
        等待 1 秒
        设置 无敌持续时间 = 无敌持续时间 - 1
        如果 无敌持续时间 <= 0
            设置自身属性.无敌 = 假
            停止循环
        结束
    结束
end

当受到伤害时
    如果 自身属性.无敌 = 真
        显示 "无敌状态,伤害免疫"
        停止  // 不执行后续伤害逻辑
    结束
end

Q:闪避/格挡怎么实现?

A

当受到攻击时
    获取 闪避率
    随机数 = 随机(1, 100)
    
    如果 随机数 <= 闪避率
        显示 "闪避!"
        停止
    结束
    
    获取 格挡率
    如果 随机数 <= 格挡率
        实际伤害 = 伤害 * 0.5  // 格挡减半伤
        显示 "格挡!"
    结束
    
    造成伤害 实际伤害

常见问题类

Q:怪物不会受伤怎么办?

A:检查清单:

检查项说明
怪物有物理组件吗没有物理无法碰撞
攻击方有伤害组件吗伤害组件才能造成伤害
怪物有生命组件吗没有生命组件无法受伤
碰撞检测开启了吗物理组件的碰撞检测要开

Q:子弹不飞/不消失怎么办?

A:检查:

检查项说明
子弹有物理组件吗物理才能移动
物理组件是否不受重力否则子弹会下落
子弹的生命时间是否太短/太长
碰撞检测是否正确碰撞后是否正确销毁

Q:伤害数值不对?

A:检查:

  1. 基础伤害是否正确设置
  2. 是否有加成/减免逻辑
  3. 伤害类型是否正确
  4. 防御力计算是否正确

Q:攻击间隔不起作用?

A:检查攻击脚本是否有冷却控制:

当攻击时
    如果 自身属性.攻击冷却 > 0
        显示 "冷却中"
        停止
    结束
    
    执行攻击
    设置 自身属性.攻击冷却 = 1  // 1秒冷却
    
    重复执行
        等待 0.1 秒
        设置 自身属性.攻击冷却 = 攻击冷却 - 0.1
        如果 攻击冷却 <= 0
            设置 攻击冷却 = 0
            停止循环
        结束
    结束

战斗系统选择速查

需求需要的组件
物体能受伤/死亡物理 + 生命
物体能造成伤害物理 + 伤害
角色能装备武器武器槽
发射子弹子弹 + 物理(不受重力)+ 武器槽
近战攻击伤害 + 物理 + 武器槽
显示血条物体UI + 生命

概念关系速查

战斗系统 = 核心组件链
  ├── 物理组件(让物体能动、能碰撞)
  ├── 生命组件(管理血量)
  │   ├── 当受到伤害时
  │   ├── 当死亡时
  │   └── 当生命值改变时
  ├── 伤害组件(造成伤害)
  │   ├── 基础伤害
  │   ├── 攻击间隔
  │   └── 当造成伤害时
  ├── 武器槽(装备武器)
  │   ├── 当武器切换时
  │   └── 当使用武器时
  └── 子弹组件(发射子弹)
      ├── 子弹速度
      ├── 子弹伤害
      └── 当碰撞时

相关页面


待验证问题

以下问题需要进一步验证:

问题状态验证方向
伤害组件的具体参数默认值🔄 待验证需要官方文档确认
子弹组件的具体参数🔄 待验证需要官方文档确认
某些战斗状态的具体实现细节🔄 待验证需要实际项目测试

> 📝 说明:战斗系统核心机制已稳定,具体参数属于进阶内容。

后续优化方向

  • [ ] 补充更多战斗技能的设计案例
  • [ ] 增加战斗UI(如血条、技能栏)的设计说明
  • [ ] 完善BOSS战的设计专题

参与维护

发现文档问题?

你可以编辑页面、提交反馈,或复制链接给维护者,帮助这个资料库继续变好。

由 Azek431 整理与维护 | 基于 MIT 许可证开源