玩家一开始有 3 条命。每碰到一次危险(尖刺、敌人……),就会少一条命,生命条也会下降。到 0 就是 Game Over:关卡重新开始。
你需要:
- 一个名为 player 的、可以移动的角色(见 移动角色);
- 一个或多个危险物,比如名为 spikes1、spikes2……的红色方块;
- 一个生命条:一个名为 healthBar 的 进度条 对象(进度条),放在屏幕上方。
第 1 步:准备危险物和生命条
- 选中每个危险物,在它的 “标签 (Tag)” 栏中输入 danger。
- 选中 healthBar。在检查器的 “进度条” 区域:最小值 = 0,最大值 = 3,当前值 = 3。
第 2 步:创建“vie”变量
- 在左侧面板的 变量 区域创建一个变量。
- 名称:vie(生命)· 作用域:局部 · 类型:整数 · 初始值:3。
第 3 步:少一条命
- 打开场景的 蓝图。
- 添加 “如果对象碰到标签” 事件:目标 player,标签 danger。
- 添加 “增加变量值”:变量 vie,要增加的值 = -1(带负号,表示减去)。
- 添加 “设置进度”:目标 healthBar,新进度 =
=vie - 按顺序把三个节点连起来。
如果对象碰到标签目标:player · 标签:danger
→
增加变量值vie · - 1
→
设置进度healthBar · =vie
👉 在 “新进度” 中写
=vie 的意思是:“取变量 vie 的值”。这样生命条就会一直跟着命数变化。第 4 步:Game Over
- 在 “设置进度” 之后,添加 “条件” 节点,条件 =
=vie <= 0(“vie 小于或等于 0”)。 - 把它的 真 输出连到 “重新开始场景” 节点(类别 场景与 HUD)。
- 保存,开始游戏,碰三次危险物。
设置进度healthBar
→
条件=vie <= 0
真 →
重新开始场景
👉 “重新开始场景” 会让一切回到开始时的样子:对象回到原位,作用域为 “局部” 的变量(也就是 vie = 3)恢复初始值。
👉 想要一个真正的结束画面?不要马上重来,而是把 真 输出连到 “修改文本”(文字“你输了!”),然后 “等待”(2 秒),再接 “重新开始场景”。
附加:掉进深渊
做平台游戏时,在场景最底部放一个名为 fallZone 的 区域 对象(区域在游戏中是看不见的)。然后:
碰撞 A/B对象 A:player · 对象 B:fallZone
→
重新开始场景
如果不起作用
- 生命没有减少:检查每个危险物上的 danger 标签,以及 -1 里的负号。
- 生命条不动:“设置进度” 的目标必须是进度条,最大值为 3。
- 游戏没有重来:条件必须通过它的 真 输出连接。