房间编辑器


房间编辑器

房间编辑器是你想要创建游戏房间的地方。每个游戏都需要至少一个房间才能运行,在房间里你可以放置 实例精灵图块路径背景。这些不同的资产中的每一个都可以放置在它们自己的唯一层上,然后可以在 层编辑器 中按照你的要求进行排序。由于房间编辑器的复杂性,我们将首先简要介绍最重要的功能,然后你可以从下面列出的部分标题中找到更多详细信息。

创建房间资源时,可以在资源树中右键单击 它以打开房间菜单。这将允许你创建子房间(请参阅下面的 继承),打开房间属性以进行更改,添加新资源组以更好地组织房间、重命名命名房间或删除房间。请注意,你可以在资源树中点击并向上或向下拖动房间以重新定位它,以及将房间拖到另一个房间以将其“可视”地附加到该房间(它将显示在另一个房间下方缩进,通常是你想要继承的房间),或将其拖到组文件夹中以将其添加到那里。

请注意,房间编辑器本身就是一个 工作区,因此你可以单击 选项卡并将其从主窗口拖到自己的新窗口中 - 例如,你可能会将其拖到另一个陈列的工作区中。你还可以通过将选项卡拖动到 IDE 顶部并释放鼠标按钮将其放回主窗口。


界面

房间编辑器的用户界面易于导航和分割成各个不连续的部分。停靠的编辑器的那些部分 - 房间属性和层编辑器以及不同层的属性部分 - 也可以通过简单地将它们拖到工作区中而从停靠点中移除,并且它们可以再次将它们拖动到工作区的两侧或底部重新停靠。

Room Editor Layer Editor

房间编辑器将东西放在房间内的层上。每个层都处于不同的“深度”,层窗口中列表底部出现的那些层将显示在顶部附近的层下方。

重要! 最小和最大层深度为 -16000 到 16000。尽管所有事件仍将正常运行,但 不会绘制 放在该范围之外的层上的任何内容。

通过单击 要创建的层类型的相应按钮来创建层,这些按钮是:

  • 新建实例层 - 这种类型的层将保存游戏的所有实例
  • 新建图块层 - 这种类型的层用于将精灵绘制为图块集
  • 新建路径层 - 此层包含路径数据(每层只能有一个路径)
  • 新建资产层 - 这个层用于放置可视化资产(例如:精灵)
  • 新建背景层 - 这种类型的层定义了背景,该背景基本上是绘制的单个颜色或图像

你还可以使用文件夹按钮 创建 层文件夹,你可以在其中将所选层组合在一起,也可以使用删除按钮 删除所选层。这些层类型中的每一个都在 这里 更详细地讨论。

请注意,你可以切换层编辑器的继承,这将影响层顺序和可见性。可以通过单击每个层旁边的眼睛图标 来设置其可见性,也可以点击 最顶部的图标以一次启用 / 禁用所有层。你还可以单击挂锁图标“锁定”一个层(或所有层),这使得它们无法更改。


Room Editor Layer Properties

房间层属性窗口将根据层编辑器中当前选定的层而更改。每个窗口都有不同的属性和列表,你可以编辑层显示方式和层实际内容的基本细节。请看 这里 了解更多细节。


房间属性分为以下三个部分:

Room Editor Settings

你可以在房间设置部分设置继承切换、房间名以及是否持久。通常情况下,当你离开房间并稍后返回同一房间时,该房间将重置为其初始设置。这通常适用于大多数游戏,但它可能不是你想要的,例如,RPG 或任何非线性游戏,你想在房间之间进出,并且最后一次性离开它们。勾选 保持 复选框将执行此操作。房间状态将被记住,当你稍后返回时,它将与你离开时完全相同,只有在游戏重置时才会重置为开始状态。请注意,这有一个例外 - 如果你将某些物体标记为持久,则此物体的实例将不会留在房间中,而是移动到下一个房间。

在 “保持” 的下面,你可以选择 清除显示缓冲区。此选项与前一个选项类似,只是它用颜色填充 “后缓冲区”。如果你知道视图将始终覆盖整个屏幕,或者你已经绘制了全屏背景,那么你可以取消选中(这可以保留重绘,从而有助于优化你的游戏),但如果你有重叠的视图,当在屏幕上留下开放空间,或者你的背景有任何透明度时,你应该勾选该选项,以便那些没有视野的区域用你选择的绘制颜色填充。 目前,只能通过使用 window_set_colour() 函数设置此颜色。

注意: 如果你正在使用自动宽高比校正(如 游戏选项 中所设置),那么你应该始终检查此项,否则你可以在你的游戏所在的 “宽银幕” 上获得奇怪的效果。如果你不使用此选项,你可以取消勾选,并稍微提升你的游戏性能(特别是在 Android 和其他移动平台上效果明显)。 在此下方,你可以看到可用视图列表(你最多可以定义 8 个视图),其中包含有关在下面的框中包含这些视图的位置的信息。首先,你必须通过选中相应的选项来指示房间开始时视图是否可见,如果你希望使用视图,请确保每个房间的开头至少可以看到一个视图。 可见视图在此上方的视图列表中以粗体显示。

房间必须有一个大小,这是由你输入的宽度和高度值(以像素为单位)定义的,一旦设置了,如果需要的话你可以继续添加 创建代码。从底部的按钮添加创建代码(以及继承切换以指示房间是否应该继承它的创建代码),如果点击它,你将打开 代码编辑器。此编辑器允许你输入将在房间开始时,在所有实例的创建事件 之后 但在房间开始事件 之前 运行的函数和代码。如果房间被标记为持久性,那么后续访问将无法执行此代码,此代码仅在你第一次进入房间时运行。

“房间设置”中的最后一个按钮允许你打开 实例创建顺序 窗口:Room Tile Menu 此窗口按照创建顺序列出房间中的所有实例(从上到下)。 如果你需要在任何其他实例之前创建特定实例,则只需点击 并将其拖动到你需要的位置即可。


Room Editor Views

摄像机视图提供了一种机制,用于在屏幕上的不同位置绘制房间的不同部分,或者仅绘制房间的一部分以覆盖整个屏幕。例如,在大多数平台游戏中,摄像机视图跟随主角,因为如果你可以在屏幕上看到整个关卡,那么你的角色将会太小而无法看到并且玩家也无法获得惊喜感。摄像机视图也可用于多玩家合作游戏,因为它们允许你创建分屏设置,其中在屏幕的一个部分中你可以看到一个玩家而在另一个部分中你可以看到另一个玩家。另一个例子是在卷轴类游戏中,房间其中的一部分,例如地图可能会跟随主角移动(通常是主角不动而地图后退),而另一部分是固定的(如显示血量的状态面板)。这在 GameMaker Studio 2 中可以通过相机视图轻松实现。

在视图属性的顶部,你可以打开或关闭视图继承,然后有一个 启用视口 复选框。必须先勾选它,然后才能在游戏中激活任何视图。下一个复选框是 清除视图背景,它使用窗口颜色清除应用程序表面,如果你知道要绘制以覆盖整个表面,则可以取消选中该复选框。

注意: 你可以为三个主视口设置打开或关闭继承,然后为每个单独的摄像机视图打开或关闭继承。

摄像机视图由两组不同的值定义,摄像机视图本身和屏幕上将绘制此视图的 端口。这有时会引起混淆,所以在解释我们如何定义它们之前,让我们先解释一下:

  • 摄像机(The Camera): 房间内的一个点,用于设置房间在屏幕上的显示方式(这是房间编辑器中的抽象点,其位置根据视图和视口设置自动设置)
  • 视野(The View): 摄像机看到的内容,基于摄像机的位置、投影和旋转
  • 视口(The View Port): 将显示摄像机视图的物理屏幕区域
摄像机视野

因此,例如,这意味着你可以将 640 x 480 摄像头视图放入你的房间,然后将端口设置为 320 x 240,这将显示缩小到屏幕上该大小端口的视图,你也可以执行相同的操作将视图设置为较小的值,将端口设置为较大,使图像按比例缩放以适合端口大小,并在屏幕上显示大于它的值。通过这种方式,你可以在更改摄像机视图的同时保持屏幕(端口)大小,以在屏幕的同一区域中显示房间更多或更少的一部分。

摄像机视图始终定义为房间中的矩形区域,你可以在其中指定左上角的位置、此区域的宽度和高度。然后,你必须通过定义视口来指定此区域在屏幕窗口中显示的位置,你还可以指定左上角的位置和大小(请注意超过左上角的 0,0 以外的值会给出奇怪的结果)。你可以有多个端口,它们可以重叠,在这种情况下,它们以指示的顺序一个在另一个上面绘制。请注意,整个屏幕区域始终定义为矩形区域,因此即使在平移时,你的端口也会形成一个矩形,窗口颜色会填充任何空白区域,这意味着在这些情况下你应该始终清除选中的显示缓冲区,否则你将在端口之间的空间中绘制奇怪的人造复制图景。

注: Windows8 SurfaceRT 设备限制了画布大小为 2048 x 2048,这意味着绘制的画布不能超过这个尺寸(视野或者直接设置游戏窗口都不可以),否则游戏画面将无法承受或降级。

物体跟随 选项适用于你希望视图“跟随”(即:保持视图聚焦)某个物体的时候。要执行此操作,你必须单击 菜单图标并从弹出的列表中选择一个物体(如果房间中有多个此物体的实例,则其中只有一个跟随视图)。正常情况下,视图仅在跟随的物体靠近该视图的“缓存区”时开始移动,这个缓冲区可以被认为是视图里不可见的边界。 原因:原文意思没说清楚。你可以使用 水平边框垂直边框 值来定义此区域,因此 - 例如 - 将这些值设置为 64 将意味着视图不会开始移动并跟随角色,直到他到达距离视图边缘 64 像素时。

最后,你可以指示当角色到达缓冲区时视图移动的速度,并且其默认值为 -1。这个默认值代表移动是“瞬间”的,表示跟随物体在水平边框或垂直边框缓冲区之外时,视图将一下移到应该到达的位置,这会很突兀。现在,这并不总是你想要的,因此你可以通过将值设置为 -1 以外的值来设置视图的垂直和水平滚动速度。请注意,值为 0 将导致视图根本不移动,而任何其他正值都是在每一步移动的像素数,因此将水平速度设置为 5 将使视图跟随物体每一步横向移动 5 个像素。


Room Editor Physics

在使用内置物理函数之前,必须在这部分的顶部勾选 启用物理 的选项(你还可以独立于其余房间设置切换此部分的继承)。完成后,你可以继续设置物理世界属性,这些属性是你在房间允许物理实例工作之前必须预先定义的一些基本属性。为了更精确地控制世界,你可以使用代码(有关更多信息,请参阅 - 物理函数)。

接下来你要做的就是建立世界的 重力。其强度和方向计算为你在 (0,0) 点附近设置的 x / y 点的矢量。因此,x 为 0 且 y 为 1 时,将重力方向设定为以每秒 1 米向下的重力(有关更详细的解释,请参阅 - 物理世界:重力)。最后,你必须为 GameMaker Studio 2 设置 像素-米 比例尺,以用作其所有物理计算的基础。这是因为物理函数适用于实际测量,这就是我们必须设置此值的原因,并且你需要调整此设置,直到你使用的物体的平均像素大小大致转换为模拟物理物体适当的大小。


某些层类型将在工具箱中的 IDE 顶部添加其他 工具(例如,图块层或路径层)。不同的层类型类型中具体的工具将会不同,因此将在下面的处理每个层的部分中进行说明。


在主房间编辑器面板的顶部,你可以使用一些控件来处理事物的显示方式。选项有:

  • 切换网格显示 : 这将打开 / 关闭房间编辑器面板的网格。这是 GameMaker Studio 2 在主面板上绘制的网格,将其划分为多个部分,默认情况下设置为 32 x 32 像素。但是,如果单击网格菜单图标 ,则将打开网格选项:Room Editor Grid Options 这些选项允许你设置网格颜色和透明度,以及沿 X 和 Y 轴的网格单元格大小。 你还可以选择在此处启用或禁用网格捕捉(默认情况下启用)。你可以使用键盘快捷键 “G” 和 + “G” 分别切换网格可见性和网格捕捉。

  • 画布缩放工具 : 这些按钮控制当前画布缩放级别。你可以放大或缩小,单击按钮 会将画布重置为 1:1,并且开始编辑房间。你还可以单击窗口适配 按钮,使整个房间面板适合当前编辑器工作区(这将根据需要放大 / 缩小以使其适合)。 请注意,你也可以使用 / 和鼠标滚轮 进行放大和缩小,按 / + Enter 将房间画布设置为 1:1。

  • 显示视野 : 单击此按钮将启用或禁用视图矩形。启用后,你将看到一个突出显示的区域,表示为房间启用的不同视图。

  • 播放动画 : 在添加精灵,资产或动画图块时,你可能想不通过编译而看看它在房间中看起来是什么样的,因此你可以单击此按钮以启动所有不同的动画播放。 再次单击它将停止动画。

  • 任意层中选择 : 默认情况下,单击房间画布中的元素时,你只能选择当前正在编辑的层上的那些资源,但是如果启用此选项,则可以单击 任何 元素,然后选择它, 目标层到元素所在的层。 你可以使用键盘快捷键 “P” 暂时启用此功能(按住 “P” 启用,释放禁用)


房间编辑器窗口的中心将与进行所有实际编辑的区域一起使用。你可以在此处放置实例和资源,绘制图块或定位路径。你可以使用鼠标滚轮或顶部的房间控件放大和缩小,你可以通过按住鼠标中键 并移动鼠标或移动时使用 + 来平移。

创建资产层或实例层时,只需将资源或实例从资源树中拖放,然后将其放在要放置的位置即可。或者,你可以从资源树中选择资产或实例,然后按住 以 “原位” 预览资源,如果你另外单击鼠标左键 ,则可以添加实例甚至将其 “绘制” 到房间的层。请注意,默认情况下,以这种方式添加到房间的实例和精灵将被吸附到定义的房间网格设置,但你可以按住 / 使实例精确地跟随鼠标而不被吸附(释放 / 将允许再次吸附 )。

对于路径,你可以直接在房间编辑器中创建新的路径层和路径资源,或者创建新的路径资源并像实例一样将其拖动到主编辑器窗口中 - 然后编辑路径及其链接的编辑窗口。对于图块集,你可以从图块集编辑器中 “绘制” 它们。

请注意,你可以通过在你想选择的资源按下 / + 来选择和移动或删除同一层中的多个资源,并且房间编辑器中的大多数资源都允许你通过单击外边缘或角落并按住鼠标 来旋转和缩放它们(单个或作为一组)。你还可以双击 任何资源(图块,实例,精灵)以使编辑器显示它并打开所选资产的属性窗口。


状态栏用于显示特定于上下文的信息。 状态栏将始终显示鼠标光标在房间中的位置,但它还将显示正在编辑的层、正在使用的工具以及该工具的状态等其他信息。


继承

也许房间编辑器最重要的特征是 继承。继承意味着你可以创建一个“父”房间,然后创建一个“子”房间,它将继承所有父房间的属性。 这个子房间基本上是父房间的克隆,其中的所有内容都链接到父母房间。 这意味着如果你更改父视图中的视图,或移动图块及添加实例,它将反映在子房间中。不仅如此,在子房间中,需要的话,你可以有选择地关闭特定层、实例、资产或任何其他继承。具有继承属性的房间将点亮 继承 按钮,如下图所示,然后你可以使用它们为给定层或资源等打开或关闭继承... Room Inherit Buttons

一开始可能难以想象,所以让我们看一个例子:假设在房间的中间有一座城市和一座城堡。城市和城堡使用不同的图块层绘制,你还有实例和一些用于 NPC 四处走动的路径。 你想使游戏中城堡被摧毁,但城市中的其他一切外貌和行为看起来没有变化。你可以像往常一样创建包含所有内容的初始房间,然后创建一个继承父房间层的子房间。在子房间中,你关闭城堡区域的图块层(甚至是单个图块)的继承,并移动 / 添加 / 删除图块以创建被破坏的城堡外观。 当玩家进入那个房间时,来自父房间和所有图块等的所有实例将保持完全相同,除了那些被毁坏的城堡。(注:你可以将城市理解为父房间,而城堡理解为子房间。作为子房间的城堡被摧毁,但作为父房间的城市是不会受到影响的)。

重要! 如果编辑任何继承的属性,它将自动 关闭 它所属的部分中的继承,而不必先单击继承按钮。


要创建房间继承,只需选择要创建子房间的房间,然后单击鼠标右键 。打开房间菜单,你可以在那里选择 创建子房间 来创建一个新的子房间。这将在资源树中以可视方式创建并 “附加” 到父级:Room Inheritance

你还可以将任何房间从资源树拖到资源树中的任何其他房间,以使其成为该房间的子房(或将子房间拖离父房并中断继承)。请注意,继承是多层次的,你可以检查单个层,单个层上的项目组,项目属性或整个房间作为继承,并且你还可以从连续的房间继承(因此 C 房间继承自 B 房间,B 房间继承自 A 房间)。如果你创建一个除了视图设置之外没有任何内容的基础房间 - 例如 - 你可以创建所有其他房间作为其子房间。但是你可以更进一步,创建另一个基础房间,其中“视图”房间作为其父级,其中包含每个游戏室所需的通用 GUI 实例和控制面板。现在你可以从 这个基础房间 创建子房间,它们将继承父房间的 控制面板和 GUI 以及来自该房间父母的视图设置

正如你所希望的那样,继承 非常 强大,你可以使用它来维护更整洁的房间结构,加快工作流程并通常优化你制作和设计房间的时间。


首先,进入你创建的房间的所有内容都放在一个 上。可以从 层编辑器 添加,删除和排序层,并提供各种不同的类型,每种类型都有自己的选项和工作方式。你不受限于每种类型的层的数量,并且可以有多个图块层、路径层或实例层等... 每种类型的层都有自己的 属性窗口,你可以在其中设置不同的内容,具体取决于层类型。 你还可以切换层可见性,在运行时不会处理不可见的层(但你可以使用适当的层函数随时再次显示它们)。 Room Layers

上图显示了层编辑器,顶部列出了当前层,底部显示了不同的按钮。你可以通过慢慢双击名称来重命名此编辑器中的任何层(请注意,你不能使用除字母、数字和下划线 “_” 之外的任何字符作为层名字),你还可以通过单击眼睛图标 以打开或关闭其可见性。如果房间从父房间继承了层,你可以从底部的按钮切换继承,但请注意,这将影响 所有 层。你还可以使用 / 和左键单击 多个层来选择它们进行复制或删除(这些选项也可从鼠标右键 菜单中获得)。

为了帮助你对层进行排序并使其保持整洁,你可以通过单击文件夹图标 层文件夹 中创建层组。你还可以通过单击删除按钮 删除一个或多个所选层。所有层也将具有 深度 值,该深度值定义在将图像内容渲染到房间时层将放置在哪个绘图顺序中。层从最高深度绘制到最低深度,因此深度为 -100 的层将绘制在深度为 200 的层上。

重要! 最小和最大层深度为 -16000 到 16000。尽管所有事件仍将正常运行,但 不会绘制 放在该范围之外的层上的任何内容。

如果右键单击 任何层,则会显示层菜单:Room Layer Menu

你可以在此处打开所选层的层属性窗口、删除层、重命名层或添加 子层。如果你选择添加子层,则当前层将变成 “文件夹” 图标以显示附加了子层,并且将在其右下方创建新层。然后,你可以选择让子层从父层继承其属性,还可以设置是否应从父层继承可见性。

请注意,你可以在窗口中向上或向下拖动层以重新排序它们,你也可以选择和移动多个层,使用 + 从一个层到另一个层(包括中间的所有层),或 / + 一次选择一个层。如果将层放在层文件夹的顶部,它们将被移动并设置为你放置它们的文件夹的子层。你还可以锁定层,以便不会错误地编辑它们。

注意:在实际编辑器窗口中,你可以将不同的资源放在其层上,你可以在任意位置按住 “P” + 以立即选择资产并跳到已放置的层。

你可以通过单击 按钮添加新的背景层。 这将添加新层,然后打开背景属性窗口:Room Layer Background properties 创建新背景层时,默认情况下它为空,因此会绘制定义的背景颜色。如果没有为背景层图像指定一个精灵,则会改为绘制,你可以单击颜色选择框打开颜色选择器并更改使用的颜色。如果你确实选择了一个精灵,那么你可以勾选平铺选项以水平或垂直平铺,或者使其拉伸图像以填充整个房间。

如果你想让背景在一个方向上滚动,你也可以设置水平或垂直速度(每一步它将沿给定的方向移动你在这里设置的像素数),你也可以通过重新设置 x 和 y 偏移值来定位背景图像。如果你选择的精灵资源有多个子图像,你也可以设置背景的动画速度,尽管默认情况下它将被锁定为你在精灵编辑器中为此图像设定的值。 最后,你可以显式设置层的深度,但默认情况下,它会被锁定,你只需在层编辑器中拖动和重新排序层顺序即可更改此值。

请注意,你也可以通过单击最顶部的按钮来切换此窗口中背景的继承。


你可以通过单击 按钮添加新的实例层。 这将添加新层,然后打开实例属性窗口:Room Layer Instance properties

此窗口仅显示当前在层上的所有实例的列表。你可以通过打开资源树然后将物体从那里拖到房间中来向层添加更多实例,或者你可以从资源树中选择一个实例,然后按住 以 “原位” 预览资源,如果你再附加单击鼠标左键 ,你可以添加实例,甚至将其 “绘制” 到房间层中。

可以通过单击 并将列表中的实例拖动到所需位置来排序层列表,但值得注意的是,这纯粹是出于在房间编辑器中组织目的,如果要设置特定的创建顺序,请使用 实例创建顺序,可以从 房间设置 窗口或 房间 上下文菜单打开(有关详细信息,请参阅本页后面的内容)。

双击 Room Instance properties 任何实例 - 无论是在房间编辑器本身还是在属性列表中 - 都会打开一个新窗口,让你修改该唯一实例的各个方面:

默认情况下,实例将具有类似 “inst_38B0BFF” 的名称,但只要名称仅使用字母数字字符和下划线“_”(并且没有空格),就可以将其更改为你想要的名称。但值得注意的是,此处给出的名称(无论你提供的名称,还是 IDE 提供的名称)都被视为 常量,因此 必须对实例唯一。这也意味着它可以在游戏的代码中用于识别实例,但前提是你与实例位于同一个房间。

在实例名称下面,你可以设置是否要从父房间继承实例,更改你希望它成为实例的物体,甚至打开 物体编辑器 以更改其中的属性。你还可以在新窗口中打开实例的物体编辑器,如果你希望更改其中的任何内容,还可以通过 物体变量 窗口检查和编辑变量(有关物体变量的更多信息,请参阅 此处)。你也可以更改此实例的特征,设置颜色以将其与(默认为白色)混合,或者旋转和翻转它,以及沿着轴中的任一个或两个缩放实例,并在房间内设置其位置。

最后,你可以为实例提供一些 创建代码,这些代码将直接在物体创建事件代码之后运行,并且对于此实例是唯一的(因此,你可以在物体中设置一个变量,所有实例都将在创建代码中修改它,使其成为一个实例的唯一值)。单击此按钮可将 代码窗口 链接到可添加函数或修改变量的实例。请注意,你可以独立于实例继承来打开或关闭创建代码的继承。

值得注意的是,在制作游戏时,层上的每个实例都会自动标记为导出。但是,特别是在使用继承时,可能是你不希望在最终游戏中将特定实例添加到房间中(或者你可能在每个房间都有一个调试实例,而只是想将它从最终游戏中排除)。如果是这种情况,那么只需取消选中列表中实例左侧的 “导出” 复选框,就可以防止它作为可执行文件的一部分导出。但是,重要的是要注意,如果你有 任何 引用该物体的代码,那么游戏将无法正常运行,因此请谨慎使用此功能


你可以通过单击 按钮添加新的图块层。 这将添加新层,然后打开 图块层属性 窗口和 图块地图 窗口:Room Layer Tile properties平铺层属性 中,你可以切换层的继承,更改正在使用的图块集,如果希望层网格不与 (0,0) 位置完全对齐,则可以设置层相对于房间的 x 或 y 偏移量。你还可以设置层应该渲染的深度(具有自己唯一的继承按钮),并且你也可以 “锁定” 此深度,这也将阻止任何进一步的编辑。

当层属性窗口打开时,它还将打开 图块编辑 窗口,该窗口显示正在使用的图块集(如果你错误地关闭此窗口,则可以从 IDE 顶部的 房间 > 图块编辑 菜单再次打开它) 。你可以单击 在任何图块上将其选为当前画笔,然后将它们绘制到房间编辑器中的层,或者,如果要将多个图块一起绘制,可以通过单击鼠标左键 并拖动到它们来选择它们作为一个组,然后在绘制之前从图块集中选择它们。如果要一起绘制的图块不在块中,则可以按住 / 然后使用鼠标左键 选择单个图块并以此方式创建自定义画笔(还可以从自定义画笔中使用 + 删除图块)。

请注意,笔刷窗口允许你使用鼠标滚轮或顶部的按钮放大和缩小图块,你可以使用 鼠标中键或 + 进行平移。请注意,还有一个网格选项可以打开或关闭以分隔窗口中的图块,你也可以设置网格的颜色。 平铺编辑 窗口还允许你从 选项卡中选择 笔刷动画平铺自动平铺,所有这些都将在 图块集编辑器 部分中介绍。

当你选择了图块层时,在房间编辑器的顶部你将看到一组特定用于图块的工具:

Pencil Tool 这是画笔工具。它使用选定的图块在房间编辑器中使用鼠标左键 进行绘制,你可以使用鼠标右键 进行擦除。 请注意,图块的索引值显示在房间编辑器中房间状态栏的底部,如果你选择了多个图块进行绘制(例如:笔刷),则会显示所有使用的图块索引的列表。
Eraser Tool 使用橡皮擦工具,你可以使用鼠标左键 在房间编辑器中擦除给定的图块。 基本上,所有这一切都将图块索引设置为0,这是保留的 “空” 图块。
Fill Tool 填充工具允许你使用当前图块笔刷填充整个图块贴图图层或选定的图块。 你使用的笔刷可以是单个图块或由多个图块组成的复合笔刷,甚至是动画库中的图块,然后单击 层将使用所选笔刷填充图块。 如果你尚未使用选择工具,则填充将适用于所有连续的空图块或 相同索引 的所有连续图块。 如果层中有一个部分,则填充将被限制在该选择范围内。
Line Tool 选择 “线条工具” 时,单击 然后拖动和释放将在你单击的位置和释放位置之间创建一系列图块。 如果使用选择工具选择了图块地图层的区域,则该线条仅将添加到选择范围内。 可以使用单个图块笔刷、各种图块的复合笔刷或库中的动画图块来绘制线条。
矩形工具 当你选择矩形工具时,单击 然后拖动和释放将创建一个填充的矩形矩形,其左上角是你单击的位置,右下角是你释放的位置。 如果使用 “选区工具” 选择了图块地图层的区域,则矩形将仅添加到选区边界内。 可以使用单个图块笔刷、各种图块的复合笔刷或库中的动画图块来绘制矩形。
Selection Tool 这是选择工具,可用于选择图块层的区域以进行处理。 你可以单击鼠标左键 然后拖动鼠标以创建矩形区域,也可以按 / + 添加多个选择,按 + 以清除选区的一部分。 要清除整个选择,你可以按 。当你选择了图块层的区域时,其余工具(铅笔、翻转、旋转等)将仅在选定区域内工作。 请注意,你还可以在房间编辑器中复制( / + “C”)和剪切( / +“X”)选定的图块,然后将工具切换到铅笔,并允许你使用选定的图块绘制房间图层。
Autotile Tool 单击此工具可启用 自动图块 绘画样式。当它处于活动状态时,你可以从自动图块库选项卡中选择图块,然后将其绘制到房间层中,只要你正确设置了 自动图块选项卡GameMaker Studio 2 就会自动修改它以匹配周围的图块。 请注意,从图块集中选择不属于自动图块库的图块会将绘图工具重置为标准铅笔工具。
Inherit Tool 使用此工具,你可以为给定层上的特定图块启用 / 禁用继承。 为此,房间必须首先是一个 子房间,并且层必须在 层属性 中打开继承。 在此状态下,房间编辑器将默认为所有继承的图块着色为红色,单击鼠标右键 将关闭该图块的继承,单击鼠标左键 将再次将其重新打开。通过这种方式,你可以重复使用 “基础” 房间中的元素,只需选择性地更改所需的图块,同时继承所有其余图块。
Flip Tool 使用鼠标左键单击 (或使用键盘快捷键 “X”)翻转工具将翻转当前选择用于沿水平轴绘制的图块,而不更改绘图工具(如果你选择了自定义笔刷进行绘制,则整个笔刷会水平翻转)。如果你没有选择要绘制的图块,但在层上 选择了 一组图块,则翻转工具将翻转所选图块。
Mirror Tool 使用鼠标左键单击 (或使用键盘快捷键 “Y”)镜像工具将镜像当前选择用于沿垂直轴绘制的图块,而不更改绘图工具(如果选择了自定义笔刷进行绘制,则整个笔刷将垂直翻转)。 如果没有选择要绘制的图块,但在层上 选择了 一组图块,则“镜像”工具将镜像选定的图块。
旋转工具(Rotate Tool) 使用鼠标左键单击 (或使用键盘快捷键 “Z”)旋转工具将旋转当前选择的图块顺时针旋转 90°,而不更改绘图工具(如果你选择了自定义笔刷进行绘制,整个笔刷将旋转)。 如果没有选择要绘制的图块,但在层上 选择了 一组图块,则“旋转”工具将旋转所选图块。

在将图块绘制到房间中时,你可以通过左键单击 添加并通过右键单击 删除,并且它们将 始终 捕捉到 图块集属性中 定义的网格 - 如果这种网格捕捉不是你需要的,那么你最好使用 资产层

请注意,如果使用 选区工具 Selection Tool在房间编辑器面板中选择一组图块,然后剪切或复制它们,它们将暂时成为当前用于绘制的笔刷。

有关图块层的更多信息和更多高级选项,请参阅以下部分:


你可以通过单击 按钮添加新的路径层。 这将添加新层,然后打开路径属性窗口:Room Layer Path properties

在这里,你可以从资源树中选择用于图层的路径,然后更改已定义的连接类型(平滑直线)、是否关闭它以及创建路径的精度。另请注意,你可以在此处切换继承,并且可以将路径设置为特定颜色(默认为红色),以便在编辑器中更好地查看它们。如果没有定义路径资源,可以单击 新建 按钮创建一个。路径层也具有与它们关联的深度值(默认情况下已锁定),即使在使用它们时游戏中实际上没有渲染任何内容。

值得注意的是,你还可以通过点击 编辑器向路径添加点,以及使用鼠标右键 删除点,或者通过单击并拖动它来选择一个点,所有这些都在实际的房间编辑器中,使用路径非常容易。如果你在不同的路径点上按住 / + ,那么它们都将被选中,你可以将它们一起移动或从菜单选项中删除它们(如下所述)。

如果在操作路径时右键单击 编辑器窗口,则会获得以下选项:Room Layer Path Menu

在这里你可以反转路径方向(这将几乎没有可见效果,但是会反转路径点计数的顺序,因此起点变为终点,反之亦然),以及水平或垂直翻转它们。你也可以从此菜单中删除所选点。请注意,你可以按住 “T”、“S” 或 “R”,然后单击 并拖动以平移,缩放或旋转整个路径。


你可以通过单击 按钮添加新的资产层。 这将添加新图层,然后打开资产属性窗口:Room Layer Asset properties

资产层只用于在房间中放置精灵,你可以通过从资源树中拖动它们来放置它们或者在资源树中选择所需的精灵来然后使用 + 来“绘制”它们。精灵资产类似于图块,只有它们可以完全动画化 - 如果使用的精灵具有子图像,它们将被显示 - 没有图块的限制,例如:它们不会被强制到网格中,动画可以是任意长度和速度。在资产层上放置精灵时,如果在房间编辑器顶部设置了网格吸附,它们将吸附到网格,但如果要手动放置它们,只需关闭网格即可。

将资产放入房间后,通过双击 资产打开资产属性窗口,你可以对其外观进行一定程度的控制:Room Asset properties

从这里,你可以为资产指定一个唯一的名称、设置是否从父房间继承以及更改你希望它显示的精灵。 你也可以更改此精灵素材资源的特征,设置颜色以将其混合(默认为白色),或旋转和翻转它。 你还可以沿轴中的任一轴或两个轴同时缩放实例,并设置它在房间内的位置。如果精灵具有子图像,你可以选择动画速度以及设置要显示的初始帧,尽管默认情况下它会锁定为精灵编辑器中为图像设置的动画速度。

值得注意的是,在制作游戏时,图层上的每个精灵都会自动标记为导出。 但是,特别是在使用继承时,可能不希望在最终游戏中将特定的精灵添加到房间中。 如果是这种情况,那么只需取消选中列表中精灵左侧的 “导出” 复选框,就可以防止它作为可执行文件的一部分导出。 但是,重要的是要注意,如果你有 任何 引用该精灵资源的代码,那么游戏将无法正常运行,因此请谨慎使用此功能。


右键菜单

除了编辑器内工具,你还会看到 IDE 的顶部添加了一个新的下拉菜单。Room Editor Menus 这些菜单说明如下:

如果你关闭了层编辑器窗口,这将重新打开它。


如果你关闭了房间属性窗口,这将重新打开它。


如果你关闭了层属性窗口,这将重新打开它。


这将打开实例创建顺序窗口(也可以使用 房间设置 窗口中的按钮打开):Room Tile Menu 此窗口按照创建顺序列出房间中的所有实例(从上到下)。如果你需要在任何其他实例之前创建特定实例,则只需点击 并将其拖动到你需要的位置即可。


这会将房间编辑器窗口布局重置为当前焦点的桌面工作区的默认值。


使用图块层时,此选项将在下拉菜单中突出显示。 它有以下子菜单: Room Tile Menu

编辑图块层时,你可以通过点击、按住并拖动鼠标左键 来选择多个图块,也可以使用 / + 选择和分组单个图块,或使用 + 从已选图块中删除单个图块。从此菜单中,你可以清除选区或反选,以及将选区剪切、复制或粘贴到另一个层(甚至是同一层的另一个位置中)。 如果你已关闭它,最终选项将重新打开 图块集编辑器 窗口。


将图像转换为图块地图 选项是一个功能强大的工具,可用于导入单个图像,然后从图像中提取使用的图块并在房间编辑器中将其重新创建为图块层,从而创建所需的图块集和子画面作为过程的一部分。 选择此工具时,系统将要求你提供未压缩的图像文件(PNGGIFBMP),然后加载该文件。在加载时,你将看到 图像导入 工具: 将图像转换为图块地图

在这里,你可以选择在创建图块集时如何拆分图块,还可以设置单元格宽度和高度以及边缘周围所需的偏移。你还可以设置创建的最终精灵的近似宽度(以像素为单位)。例如,如果图块集由 64 x 64 图块单元格组成,并且你将此处的宽度设置为 200,则创建用于图块集的最终精灵将为 192 像素宽(即:3 个 图块单元格)。如果将其保留为默认值 0,则 GameMaker Studio 2 将尝试使用大约相同数量的水平和垂直图块单元格作为 “方形” 精灵。

设置图像分割方式后,单击 移除颜色 选项旁边的样本将打开颜色选择器,并允许你选择要从最终精灵中删除的颜色。这通常是你要删除的背景颜色,并将此样本设置为除 100% 透明(透明度为 0)以外的其他内容将在导入时删除所选颜色。

最后,你可以选择命名将由此工具为你创建的精灵、图块集和图块地图层。完成导入后,将创建一个包含网格中所有图像的精灵,以及该精灵中的一个图块集。在房间中,将创建新的图块集层,并使用生成的图块集再现图像。请注意,该工具 不会复制图块,而是会识别单元格是否具有与另一个单元格重合的图像数据(这包括旋转的图块)。你可以在下面的图像中看到这一点,其中只创建了一个花卉图块和一个木块图块,但是两者都有多个实例,其中一些实例在基本图像中旋转: Convert Image To Tilemap Example Tileset