← Yop2D

如何让玩家掉血?

新手教程 · 无需代码

Français · English · Español · Deutsch · Italiano · Português · Русский · 中文 · 日本語

玩家一开始有 3 条命。每碰到一次危险(尖刺、敌人……),就会少一条命,生命条也会下降。到 0 就是 Game Over:关卡重新开始。

你需要:

第 1 步:准备危险物和生命条

  1. 选中每个危险物,在它的 “标签 (Tag)” 栏中输入 danger。
  2. 选中 healthBar。在检查器的 “进度条” 区域:最小值 = 0,最大值 = 3,当前值 = 3。

第 2 步:创建“vie”变量

  1. 在左侧面板的 变量 区域创建一个变量。
  2. 名称:vie(生命)· 作用域:局部 · 类型:整数 · 初始值:3。

第 3 步:少一条命

  1. 打开场景的 蓝图。
  2. 添加 “如果对象碰到标签” 事件:目标 player,标签 danger。
  3. 添加 “增加变量值”:变量 vie,要增加的值 = -1(带负号,表示减去)。
  4. 添加 “设置进度”:目标 healthBar,新进度 = =vie
  5. 按顺序把三个节点连起来。
如果对象碰到标签目标:player · 标签:danger
→
增加变量值vie · - 1
→
设置进度healthBar · =vie
👉 在 “新进度” 中写 =vie 的意思是:“取变量 vie 的值”。这样生命条就会一直跟着命数变化。

第 4 步:Game Over

  1. 在 “设置进度” 之后,添加 “条件” 节点,条件 = =vie <= 0(“vie 小于或等于 0”)。
  2. 把它的 真 输出连到 “重新开始场景” 节点(类别 场景与 HUD)。
  3. 保存,开始游戏,碰三次危险物。
设置进度healthBar
→
条件=vie <= 0
真 →
重新开始场景
👉 “重新开始场景” 会让一切回到开始时的样子:对象回到原位,作用域为 “局部” 的变量(也就是 vie = 3)恢复初始值。
👉 想要一个真正的结束画面?不要马上重来,而是把 真 输出连到 “修改文本”(文字“你输了!”),然后 “等待”(2 秒),再接 “重新开始场景”。

附加:掉进深渊

做平台游戏时,在场景最底部放一个名为 fallZone 的 区域 对象(区域在游戏中是看不见的)。然后:

碰撞 A/B对象 A:player · 对象 B:fallZone
→
重新开始场景

如果不起作用