一段简单的GML代码实现角色的俯视视角移动。请注意,所有内容都非常简单,包括使用的德语变量,其中有些变量名称很长。通常情况下,代码会使用英语编写,但由于本指南面向初学者且使用德语,因此我对文本进行了相应调整。因此,它应该非常适合初学者。如果您发现错误或有疑问,欢迎告诉我。Lg Veini 创建游戏角色精灵 首先,我们在资源浏览器中右键点击精灵。

现在点击创建(1),然后点击精灵(2)。

他创建了一个名为Sprite1的新精灵。

我们马上给它改名,比如改成游戏角色。

现在我们双击图片上标记的区域。这样就能打开精灵编辑器。


现在我们来创建一个非常简单的游戏角色,作为示例,它只有一种颜色。我们选择一种颜色,然后点击填充工具。

我们点击标记区域,现在会出现一个橙色的四边形,它将作为我们角色的简单示例。

创建玩家角色对象 现在我们用同样的方法创建一个对象。在资源浏览器左侧右键点击“对象”,选择“创建”,然后选择“对象”。我们将该对象命名为【玩家角色对象】(oSpielfigur)。


标记区域内的是我们的对象oSpielfigur。

我们点击“添加事件”,然后点击“步骤”。


如你所见,该对象增加了一个区域,我们现在可以在其中编写代码。

关于【步骤】事件的一些重要信息:此事件会使其中编写的所有代码每秒被调用60次。不过,这可能会根据你为游戏设置的参数而有所不同。默认情况下应该是60次。 我们来编写代码。 注意:自己动手编写代码比单纯复制粘贴的学习效果更好。

在代码的第一部分,我们使用var bewegungsgeschwindigkeit = 4;来声明局部变量。在我们的例子中,var代表局部变量。bewegungsgeschwindigkeit是变量名,= 4表示我们将值4存储到该变量中。 在变量上方,我们写了// Bewegungsgeschwindigkeit。//会将其后的内容括起来,不被程序考虑,它的作用是作为注释。 我们对bewegungX和bewegungY也进行了同样的操作: // Bewegungsgeschwindigkeit var bewegungsgeschwindigkeit = 4; // Bewegung initialisieren var bewegungX = 0; var bewegungY = 0; 接下来的部分,我们检查键盘输入以获取所需的方向,并按如下方式查询这些输入。// 检查键盘输入并确定移动方向 if (keyboard_check(vk_up)) { 移动Y = -移动速度; } if (keyboard_check(vk_down)) { 移动Y = 移动速度; } if (keyboard_check(vk_left)) { 移动X = -移动速度; } if (keyboard_check(vk_right)) { 移动X = 移动速度; } 我们来仔细看一下。 我们在这里看到的是一个if条件判断。 if (keyboard_check(vk_up)) { 移动Y = -移动速度; } 一个不带其他代码的if条件判断如下所示 if (条件) { // 当条件为真时要执行的代码 } 如果if条件判断中的条件得到满足(即条件为真),则会执行花括号内的代码块。否则将跳过此代码块。 现在我们继续看示例。 我们看到,条件是keyboard_check(vk_up)。这意味着当按下上方向键时,花括号内的代码将被执行。 需要注意的是,keyboard_check()是一个内置函数,而vk_up是GameMaker的内部变量。 现在我们假设按下了上方向键。 因此,我们将-bewegungsgeschwindigkeit(即-4)的值存储在局部变量bewegungY中。 if (keyboard_check(vk_up)) { bewegungY = -bewegungsgeschwindigkeit; } 对于vk_down,其值为+bewegungsgeschwindigkeit,即4。if (keyboard_check(vk_down)) { 移动Y = 移动速度; } 对此的解释很简单:当我们沿Y轴从上往下移动时,使用+号;当我们从下往上移动时,使用-号。 在X轴上则是从左往右移动时使用+号,反之使用-号。
在最后一部分,我们来看看这一切是如何结合起来的。 我们假设游戏角色的初始位置是x和y都等于0。 当我们按下右键时,移动变量bewegungX等于4。计算过程如下:0 += 4 = 4。 然后如果我们再次按下右键,数值会再次增加:4 += 4 = 8。这样我们就向右移动了。 当我们按左键移动时,在我们的示例中计算过程如下:8 += -4 = 4。这样我们就向左移动了。 注意!不过由于我们按住按键,这个过程会非常快。上面的示例仅用于说明计算过程。以下是最后一部分内容//更新玩家角色位置 x += 移动X;y += 移动Y;以下是完整代码://移动速度 var 移动速度 = 4;//初始化移动 var 移动X = 0;var 移动Y = 0;//检查键盘输入并确定移动方向 if (keyboard_check(vk_up)) { 移动Y = -移动速度;} if (keyboard_check(vk_down)) { 移动Y = 移动速度;} if (keyboard_check(vk_left)) { 移动X = -移动速度;} if (keyboard_check(vk_right)) { 移动X = 移动速度;}//更新玩家角色位置 x += 移动X;y += 移动Y;将精灵与对象组合并测试所有内容 我们通过以下方式将精灵添加到对象中在图片中可以看到,首先点击对象中的三个点,然后点击“精灵”文件夹,选择我们的精灵“sSpielfigur”。




现在我们点击资源浏览器前方的【房间】旁边的小三角形,然后双击【Room1】。


我们的窗口应该看起来差不多是这样的。

现在我们按住鼠标左键将对象oSpielfigur拖入场景,如图所示。

现在我们只需点击“开始游戏”,就可以测试我们的操控了。


完成了!这样我们就为游戏角色创建了一个简单的俯视视角操控方式。 如果有任何问题或建议,欢迎随时提出。请注意,本指南是面向新手的。 由于我使用GML已经有很长时间了,有些内容对我来说可能是理所当然的,但新手可能需要更多的信息,所以我也有可能遗漏了某些内容。 祝好,Veini :)




换一换 



















