创建物体


到目前为止你可以添加漂亮的图像和优美的声音资源,但是它们还没有在游戏内做任何事!为此,我们需要创建 GameMaker Studio 2 最重要的资源,即 物体 资源。物体是一个用来控制游戏各方面的具体事件的特殊资源。大多数时候,他们会有一个与其相关联的精灵,以便可以在游戏房间中看到他们,但有时他们被用作“幕后” 控制器 来做与用户有关的事情或计时等。它们可以被给予行为,并能对事件和它们自己做出反应。你在游戏看到的大多数事情都是基于物体和它们的相互作用。

重要! 在用 GameMaker Studio 2 制作的游戏中,角色,怪物,球,墙等等都是从资源树中找到的基本物体模板中复制出来的 实例,它们之后将会被放置在一个房间中。所以当我们谈论影响或改变一个 实例 时,我们的意思是某个房间中某个物体的一个特定复制品受到影响,而其余的则不受影响,但是当我们谈论影响或改变一个 物体 时,我们的意思是我们所做的所有事情也将反映在该物体所有复制品中。所以,物体是实例的模板,实例是我们真正用来放置在房间里用来制作游戏的

要创建一个新的物体资源,与其他资源相同,只需右键单击 物体资源文件夹并选择 创建

这是物体编辑器窗口,并且显示当前属性,你首先应该做的事情是使用 “obj_” 或其他标识符等前缀命名物体。一般来说,除非这个物体用来绘制一些事物,或者与其他物体的实例产生碰撞,否则它需要有一个精灵,可以使用按钮 添加。这将会打开 资源管理器,你可以在其中选择要使用的精灵:

如果你还没有合适的精灵,你可以点击 创建精灵按钮 来创建一个新的精灵资源并按照你的意愿来进行编辑,就像你通过标准资源创建选项来创建资源一样,只是现在它会自动分配给你开始创建前所打开的物体。一旦你选择一个资源,你也可以点击 编辑精灵 或编辑图像 按钮来编辑图像本身或精灵资源。这比首先在资源列表中查找资源然后再进行编辑资源可能要快。

一旦选择了精灵,你可以改变一些其他属性,比如它是否可见 , 或者它应该具有什么形状的碰撞遮罩。对于简单的游戏来说,你可能不需要在这里改变任何属性。那么现在我们来添加一些 事件 到物体。从基础来说,事件(events)就是在游戏进行时根据你的设计而发生的重要的事。GameMaker Studio 2 根据这些事件组成的循环来进行工作 - 一个房间从开始到结束,即为一个游戏循环,每一步(游戏时间的一个时刻,由游戏速度控制)都会有一系列事件运行,你可以选择将代码或拖放模块放入响应这些事件的实例中。

要添加事件,请单击 添加事件 按钮:

在下面的图片中,你可以看到所有的 事件类别,其中一些还包含子类别。我们不会在这里介绍所有种类的事件,但我们会简要地介绍五个最重要的事件:

创建事件 创建事件 当一个物体的实例第一次被创建时,这个事件就会发生。当通过房间编辑器将一个实例放置在房间中时,进入房间时该创建事件就是此实例的第一个事件。这意味着这个事件是进行初始化变量,启动时间轴,设置路径,以及只生产需要执行一次的事,或者产生第一次出现在此房间中的实例的最理想方式。
步事件 步事件 GameMaker Studio 2 将游戏时间分成若干个 ,游戏速度定义了每秒应该执行的步数量。一步,是所有事件在游戏运行时被检查和触发的基础循环,所以你可以想到,步事件是一个每步都会被检查和触发一遍的事件。 请注意,“步事件”类别下有三个子类别可以在实例中“微调”时间,但是一般情况下,你最常使用的是主要步事件。
碰撞事件 碰撞事件 显然,在制作游戏时,知道物体的两个(或多个)实例是否发生碰撞以及触发碰撞事件是非常重要的。 这是一个放置于一个物体,然后指定对其他物体进行碰撞检查的事件。 一旦添加该事件并选择物体来进行碰撞检查就可以添加代码或 DnD™ 来定义碰撞发生后触发的行为。
绘制事件 绘制事件 绘图事件类别中有多个不同的绘图事件,但最常用的绘图事件是顶部的绘图事件,简称为“绘制”。 这个普通绘图事件和步骤事件一样,每一个游戏帧都会被检测和触发,但是它有两种不同的工作方式。 首先是当你 添加任何代码或拖拽模块时,它将“默认绘制”被分配的精灵,并使用所有已应用在物体上的其他变换(如改变其大小或阿尔法混合)。 第二种方式将你添加代码或拖拽模块时生效。 你可以向事件添加一些内容来告诉 GameMaker Studio 2 “我想控制你为这个物体的实例绘制的内容”,它会完全覆盖默认的绘制。 这意味着如果你将将一个精灵分配给一个物体,然后设置绘制事件来绘制文本。但精灵将不会被绘制,因为你还没有告诉 GameMaker Studio 2 绘制它,但是文本(也没有告诉 GameMaker Studio 2 )会被绘制。
销毁事件 销毁事件 此事件是一个实例被销毁时所执行的最后一个事件。 在向物体添加行为时,销毁事件常会被忽略,但它可能非常有用 - 例如,在敌人死亡时创建爆炸或粒子效果,或者在房间的另一部分重新产生物体的新实例, 以及用于添加分数。

有关所有类型事件的更多信息,请参阅 此处

添加事件将打开代码编辑器或拖拽编辑器,具体取决于你创建的项目类型。 在这个窗口中,你可以添加你希望在游戏循环内每次触发事件时执行的代码或操作。 一个具有事件和代码的典型物体如下图所示:

使用 DnD™ 或代码编写游戏不属于本基本快速入门指南的范围,但你可以从以下两个页面中找到更多信息:

  1. Drag and Drop™ 概览
  2. GameMaker Language(GML)概览

你可以在这里找到 物体编辑器 所有部分的完整解释:

  1. 编辑器:物体编辑器

本指南的下一部分将着眼于 房间编辑器,在这里你学到的所有东西都将汇聚在一起,使你的项目真正成为游戏。