玩家碰到金币时,我们想要三件事:金币消失,分数加 1,新的分数显示在屏幕上。
你需要:
- 一个名为 player 的、可以移动的角色(见 移动角色);
- 几枚金币:圆形 对象(或图片),比如 coin1、coin2、coin3;
- 一个名为 scoreText 的 文本 对象,放在屏幕上方,文字为“分数:0”。
第 1 步:给所有金币同一个标签
标签就是一个记号。有了它,一段 Blueprint 就能对所有金币生效,哪怕你放了 50 个。
- 选中一枚金币。
- 在检查器的 “标签 (Tag)” 栏中输入 piece。
- 对每枚金币都这样做(栏旁边的 “列表” 按钮会列出已经用过的标签)。
第 2 步:创建“score”变量
变量就像一个小格子,在游戏中记住一个数字。
- 在左侧面板打开 变量 区域,创建一个变量。
- 名称:score · 作用域:局部 · 类型:整数 · 初始值:0。
👉 局部 = 变量只在这个场景里存在。如果分数要带到下一关,请选 全局(见 进入下一关)。
第 3 步:Blueprint
- 打开场景的 蓝图。
- 添加 “如果对象碰到标签” 事件:目标 player,标签 piece。
- 添加 “销毁对象”。目标选择 事件中涉及的对象:也就是玩家刚刚碰到的那枚金币。
- 添加 “增加变量值”:变量 score,要增加的值 = 1。
- 添加 “修改文本”:目标 scoreText,新文本 =
="分数:" + score - 按顺序把四个节点连起来,输出连输入。
- 保存,开始游戏,然后去碰一枚金币。
如果对象碰到标签目标:player · 标签:piece
→
销毁对象相关对象
→
增加变量值score · + 1
→
修改文本scoreText
👉 文字开头的 = 号告诉 Yop2D 要计算这段文字,而不是原样写出。没有它,屏幕会原封不动地显示
"分数:" + score。引号里是不会变的那部分。👉 这个事件每次接触只触发一次:站在金币上不会重复加分。
附加:收集全部金币就获胜
- 在 “修改文本” 之后,添加 “条件” 节点,条件 =
=score >= 3(3 = 金币数量)。 - 把它的 真 输出连到 “屏幕底部小提示” 节点,消息为 你赢了!,或者连到 “下一个场景”。
修改文本scoreText
→
条件=score >= 3
真 →
屏幕底部小提示你赢了!
如果不起作用
- 金币没有消失:检查标签是否处处写得一样(piece),以及 “销毁对象” 的目标是否为相关对象。
- 文字显示的是公式:开头少了 =。
- 分数一直是 0:检查 “增加变量值” 用的是否是 score 变量。
- 想对照一下,打开 Yop2D 自带的示例游戏“平台”:它正是这样收集金币的。