[音乐]
欢迎回来，各位极客们！我们
在上个视频里已经讲解了基本内容。今天，
我们要让它看起来
更像马里奥。我们会增加马里奥的
移动范围，让它不
局限于一个屏幕。我们会
添加一个HUD来记录分数，并用它来获取
分数。我们还会添加一些
敌人，特别是栗宝宝和
龟兵。如果你是第一次观看我们的视频，
并且感到困惑，请
务必观看我们的第一个视频，它会帮助
你了解我们目前为止所做的一切。好了，让我们开始吧！
由于我们要超出
原始布局，
所以我们首先要缩小画面，以便看得更清楚。
然后点击
地面，把它拉远一些。现在
地面已经超出了场景范围，
我们需要一种方法来让
镜头始终对准马里奥对象。所以我们
双击马里奥，
进入“行为”选项卡，添加一个行为。
搜索“新行为”，
然后输入“摄像机”。 接下来，
我们将安装摄像机，它会
添加两种新的摄像机行为。
然后，我们将选择平滑平台
摄像机。由于这是平滑摄像机，
这意味着它会缓慢地追上
你的角色。我们将
通过调整“番茄酱速度”来编辑它，
第三种调整会让摄像机几乎始终保持在
我们正上方。目前，
我们将使用这种设置。我们可以
快速预览一下，看到我们的角色
现在会奔跑，摄像机也会跟随我们，
直到我们到达边缘。
接下来，我们将构建“赫顿”，它会在
屏幕顶部跟踪我们所有的统计数据。我们将
首先关注图像，包括
星星、
辅助物品容器
和小金币。
让我们花点时间快速绘制这
三个物品。
[音乐]
绘制完成后，我们将把
它们作为对象精灵添加到 GDevelop 中。
由于这在
上一个视频中已经讲解过了，我们将使用
一些编辑技巧直接跳过。
现在我们有了三个新的物品。
我们要把这些物体拖到
屏幕上合适的位置。为了确保它们
不会移动，我们要
创建一个新图层。这个图层的作用是固定
摄像机，不会移动。
你可以通过点击
底部的“添加新图层”来创建新图层。如果
没有这个选项，你可以点击
顶部的“打开图层面板”图标。
现在，每当我们遇到
不想移动的物体时，只需点击
该物体，并将
图层从“基础图层”更改为我们新建的图层即可。
当然，我们要对这三个
新建的物体都进行同样的操作。
现在，在预览中，我们可以看到
角色在奔跑，HUD 界面也
保持静止。
最后，我们要在 HUD 上添加
一个文本对象。
点击“添加新对象”，选择“文本”，
并将大小更改为 16。如果
你想让字体看起来更像
马里奥的字体，你可以
下载并安装一个“超级马里奥世界”字体。
然后，当你点击“
选择文件”时，你可以找到“超级马里奥
世界”字体，并运行它。
初始显示时，我们先
输入六个零，因为我们的
分数将从零开始。
我们可以把这些零拖出来，放在
金币的正下方。好了，
我们的棋盘已经设置好了，现在该
制作我们的栗宝宝了。栗宝宝
现在被称为“加隆巴”（Galombas）。
超级马里奥世界的栗宝宝和
普通的栗宝宝略有不同。
当我们
跳到它们头上时，它们不会被压扁，
而是会翻过来，然后就可以互动了，
我们可以把它们踢出去，也可以抓住它们。
接下来是龟龟（Troopa），也就是我们的
行走乌龟。当我们跳到
它们头上时，它们会从
壳里蹦出来，壳会留在原地，我们也可以
和它们互动。目前，
我们先把栗宝宝的设定
非常简单。当我们
跳到它们头上时，它们会翻过来，
不再与
马里奥互动。这样就为
以后的视频做好了准备。 我们要踢
它们，还要抓住它们，然后把库巴
从壳里打出来。
这意味着我们需要同时创建
沙滩库巴和龟壳。然后
我们要设置龟壳，这样当我们
走过去的时候，它会被踢向
我们撞击的方向，杀死
它撞到的敌人。我们先从
栗宝宝开始，因为它比较
容易。为此，我们只需要
两张不同的图片：一张是双脚
并拢的V字形，另一张是双脚分开的。
这样它就可以跑了。我们
可以使用双脚并拢的图片，
并使用G-Develop的功能将
它们上下颠倒。
现在图片已经准备好了，我们
可以加载它们。它有
新的对象精灵，我们
要给这个动画添加一个循环，
将速度设置为0.23，并将
动画设置
为行走，对象名称设置为
栗宝宝。现在我们可以添加第二个
动画，这将是待机
动画，我们将在翻转它们时使用它。
现在，Goomba们已经跃跃欲试，准备出发了。我们
要把一个Goomba拖到地图上，然后
通过平台游戏行为赋予它移动能力。
不过，我们要关闭默认条件，这样
玩家就不会影响它的
移动。接下来，我们要把它的
速度降低到64像素。
为了让Goomba移动，我们要
使用代码编辑器，
设置一个目前为空的条件，
这意味着它将始终处于
激活状态。然后，我们要模拟
平台游戏控制，
模拟按下左键，这样
Goomba就会向左
走。我们可以回到
场景中预览一下，可以看到
Goomba直接穿过我们，然后
继续向外走。抬头看
分数，似乎
有点不对劲，这是因为我们没有把
它锁定到HUD层。所以我们
可以通过把它设置到HUD层来解决这个问题。
接下来，我们要把
马里奥的速度和跳跃力降低到合适的大小。
进入行为设置，将
跳跃速度降低到 320，移动
速度降低到 160。接下来，我们需要实现
与敌人的互动。
最基本的是，如果马里奥
碰到敌人，他就会受伤。所以我们添加一个
碰撞事件，马里奥与
栗宝宝碰撞。目前，该事件的动作是
删除马里奥。
但是等等，马里奥碰到敌人并不总是会死。
如果你跳到
栗宝宝身上，你应该能够杀死
它。因此，在这个碰撞事件中，
我们需要将其拆分为两个子
事件：一个是马里奥是否落在
栗宝宝身上，
另一个是马里奥是否没有
落在栗宝宝身上。这样，如果你
跳到栗宝宝身上，你可以
杀死它；如果你没有落在栗宝宝身上，它就会杀死
你。所以我们右键单击
碰撞事件，添加一个
子事件。在这个子事件中，如果马里奥
正在下落，
我们将删除栗宝宝。
然后我们可以复制粘贴这段代码，
右键单击第二个“马里奥正在下落”事件，并将其
反转，这意味着马里奥…… 不会
掉下去，这就是我们要删除马里奥的地方。
现在我们可以杀死栗宝宝了，我们
需要更新分数。让我们
回到场景，首先
更新新文本的名称，我把
它命名为“隐藏分数”。接下来，我们添加一个
新的文本对象，命名为“分数”。
我们导入“超级马里奥”文本，并将其
大小设置为 8 像素。这个
对象需要一个变量，
这是一个数字变量，我将
其命名为“移动到
位置并返回”。在事件表中，在
杀死
栗宝宝的条件下，我们添加一个新的动作“
创建对象分数”，并将其
放置在栗宝宝的 X 坐标和 Y
坐标处。注意区分大小写。
现在我们创建了文本，需要
设置它的值。我们通过
修改“分数”对象中的
文本来实现，暂时将其设置
为常量 200。
接下来，我们将“分数”
对象向上移动。 因为
游戏中每次生成点时，它们都会向上
滚动一点然后
消失。我们将通过
设置
点对象上创建的“移动到位置”的值来实现这一点，并将
该值设置为 points.y
减 12，也就是点对象上方 12 像素。
然后我们
再次选中点，并
使用 Force 工具，
以 270 度角（向上
32 像素）移动它，并且我们希望这个移动是
永久性的。现在，我们将创建一个
新事件，
并比较点的
y 坐标。如果点的 y
坐标小于或等于“
移动到位置”变量的值（
换句话说，如果它向上移动了 12 像素），
我们将删除它。
现在，当我们获得点时，我们
需要更新 HUD 点数。所以，双击
点，添加一个
名为“总点数”的变量。
现在，每次我们添加 200 点时，我们也会在
HUD 下的“总点数”变量中添加相应的值。
为了看到这个变化，我们
需要修改文本，将其设置为
新值。
但这会破坏格式，因为会
移除前导零。所以我们
需要一个算法，在变量
前添加正确数量的零。
为了解决这个问题，我们
需要将设置的文本从这个更改
为这个。我会解释原因。
首先，我们来解释一下子
字符串函数。它接受一个字符串和
两个数字。我们的字符串是
六个零，第一个数字
是起始位置（
从零开始），
最后一个数字是要
计数的数字个数。所以，如果
这里只有 0 和 6，我们就从这个
位置开始，并包含六个值，也就是
这六个零。例如，
当我输入分数 200 时，我们
希望从零开始，并且
只需要三个数字，因为最后
三个数字将填充
200。为了找到这个数字，
我们将使用 6 减去 6，然后
使用字符串函数。
这需要一个字符串，然后
需要返回一个数字。首先，我们需要将
整个字符串转换为
数字，然后将处理的内容转换
为字符串。接着，我们将获取
200 的长度，也就是 3，
并将其作为数字返回。我们
可以用 6 减 3，
得到三个零。然后，我们将
最后一部分（即
总分变量，也
就是 200）填充到字符串中。最终得到 000200。
数学部分到此结束。
回到 Goomba，我们要给
它添加一个布尔变量，
我们
称之为“是否翻转”。应用这个变量
后，进入事件处理程序。我们不再让它一直行走，而是
只在“是否
翻转”变量设置为 false 时才让它行走。
然后，我们还要再次检查
与 Goomba 的碰撞，并
确保“是否翻转”变量设置为
false。
这样，当我们落在 Goomba 身上时，就不会
杀死它。 我们将把“
翻转”属性设置为“真”，
这意味着我们需要移除“
删除 Goomba”属性。然后，我们将把
Goomba 旋转 180 度，
并将其动画设置为“待机”。
实际上，Goomba 有一个
比其图像略大的碰撞箱，
所以我们只需将其向下移动一个
像素，
即可确保它头朝下落地。
完成这一步后，我们
就完成了 Goomba 的设置，可以
开始设置 Troopa 了。
我们将以与
设置 Goomba 相同的方式设置 Koopa，
确保速度设置为 0.24，并勾选
循环框。
同样地，我们将把“
翻转”属性设置为“真”。接下来，我们将设置
Koopa 的“龟壳”属性，
为了让它们移动，“龟壳”属性
必须设置为“假”。
如果您找不到“
模拟控制”，请确保您已添加
角色平台行为。另外，
我们取消选中了默认控制，
并将移动速度设置为 64 像素。
现在，我将添加……
库巴有了新的动画，我把
它命名为“龟壳”，把第一个动画重命名为“
奔跑”，这样我们以后就能找到它了。
现在我可以创建一个事件，当我
与库巴碰撞时，
如果我正在下落，库巴就会像栗宝宝那样缩进
龟壳里；
如果我没有下落，马里奥就会
消失。好了，女士们
先生们，
今天的视频就到这里。在下一个视频中，我们会添加
沙滩库巴、踢
龟壳、
多层背景，以及
弹跳攻击多个敌人或龟壳
攻击多个敌人的连击点数。如果你
遇到任何无法解答的问题，
欢迎在
下方评论区留言。
如果你期待
下一集，记得点击
通知铃铛，这样就能在视频
发布的第一时间收到通知。再见！