[TOC] * * * * * ## 场景编辑器(Room Editor) ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-05-13-23-03-09.png) 场景编辑器就是你用来设计打造游戏场景的地方(似乎也有人默认翻译为游戏房间)。每个游戏至少需要一个场景才能运行,而在一个场景中,你可以放置实例、精灵、瓷片和背景等各种元素。这些不同的素材都会放置到各自对应的图层(Layer)上,这些层在图层编辑器中可以进行排序。由于本编辑器功能十分复杂,我们首先会简要介绍比较重要的内容,然后你可以从下面寻找更多详细信息。 在创建场景资源时,你只需要在资源树中右键单击打开场景菜单即可,这里还允许你创建子场景(参考下方的继承部分内容),打开房间属性进行修改,添加新的资源以更好的构建、重命名或删除场景。请注意,你可以在资源树中单击拖动场景以进行场景排序,也可以讲一个场景拖到另一个场景上作为附属场景(这样会使该附属场景缩进在主场景下方),或将其拖动到文件夹中进行管理。 请注意,场景编辑器本身就有一个独立的工作区,因此你可以点击该标签拖拽以创建一个独立的主窗口,这样可以单独放到另一台显示器中以方便工作。你也可以将标签拖回IDE顶部来将其放回主窗口。 ### 界面(Interface) 场景编辑器的操作界面简单的划分成了几个易于理解的区域。这些不同的编辑区域同时放置在工作区中——场景属性、图层编辑器以及不同的图层属性等——但也可以直接通过拖拽操作来生成独立的窗口,或将独立的窗口再放置到工作区的侧面或底部。 #### 图层编辑器(Layer Editor) ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-05-14-10-19-45.png) 场景编辑器中所有的内容都是放置在不同的图层之中的。每个图层还有一个独立的“深度”属性,在图层列表中靠下方的图层在显示时会被上方的图层所覆盖 > 重要提示:深度可以从-16000到16000之间任意设置,超出这个深度范围的内容都不会显示出来,但各种事件依然有效。 单击图层编辑器底部对应的按钮可以直接创建相应图层: * ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-05-14-10-23-55.png)实例图层(Instance):这种图层专门用于放置游戏中的对象实例 * ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-05-14-10-24-04.png)瓷片图层(Tile):这种图层用来绘制瓷片类的精灵元素 * ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-05-14-10-24-14.png)路径图层(Path):这种图层包含路径数据(每个图层只能有一个路径) * ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-05-14-10-24-24.png)素材图层(Asset):这类图层用于放置可见素材元素(比如精灵) * ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-05-14-10-24-32.png)背景图层(Background):这种图层用于定义场景背景,本质就是绘制一张图片或纯色图像 你还可以点击文件夹图标来创建一个图层文件夹,然后把所选图层分组进行管理,并使用删除按钮来删除选中图层,后面我们会单独介绍每一种不同的图层。 请注意,你可以切换图层编辑器的继承关系,这会影响到图层的顺序和可见性。单击每个图层边的眼睛图标可以直接设置其自身的可见行,也可以单击顶部的图标来统一启用/禁用所有图层。你也单击![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-05-17-21-54-52.png)图标来“锁定”图层(或所有图层),以免不小心修改了图层内容。 #### 图层属性(Layer Properties) ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-05-17-21-55-36.png) 场景的图层属性窗口会根据当前选中的图层而发生改变。每个窗口汇聚有不同的属性和列表内容,你可以编辑图层的显示方式和图层上实际的内容(后文图层一节会详细说明) #### 场景属性(Room Properties) 场景属性主要有以下三部分内容: ##### 场景设置(Room Settings) ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-05-17-21-57-44.png) 在场景设置中你可以设置继承切换,可以直接给场景命名,也有是否持久化(Persistent)的选项。通常情况,当你从当前场景跳转去其他场景以后再回到这个场景,场景是会恢复到初始状态的。对于大部分游戏来说这种做法没有任何问题,但再一些RPG或非线性的游戏中可能就不太合适,你希望在不同的场景之间来回切换,并希望场景能保持最后离开时的样子,这时候选择“持久化”就可以了。当场景被标记为持久化以后,当你离开后再次回到这个场景,它会与你离开时完全一样,只有当游戏被重置时才会恢复到初始状态。要注意,如果这个场景中有对象被你标记为持久化的话,这个实例不会留在这个场景中,而是会跟着移动到你跳转的场景中去。 一个场景必须有一个尺寸,这是由你输入的宽度和高度(像素单位)来定义的,设置完毕后,如果有必要,你还可以继续添加初始化代码。点击底部的“初始化代码(Creation Code)”按钮会打开一个代码编辑器,在这里你可以撰写所有在场景启动时需要执行的函数和代码。如果场景本身被标记了持久化,那在后续访问时不会运行这部分代码,该代码只有场景第一次创建时才会触发。 场景设置中的最后一个按钮会打开一个设置实例创建顺序的窗口: ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-05-17-22-42-55.png) 在这个窗口中会根据创建顺序列出场景内所有的实例(从上至下)。如果你需要在某个实例创建之前先创建一个特定实例,你可以直接把它拖到你需要的位置。 ##### <div id=room_views>场景视图(Room Views)</div> ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-05-18-12-00-14.png) 镜头视图提供了这样一种机制,在屏幕的不同位置绘制出场景的不同区域,或只在屏幕显示区域绘制场景的一部分。比如说,在大多数平台游戏中(横版动作游戏),镜头会时刻追踪主角,因为如果你在屏幕上看到整个关卡会让主角太小而根本看不见,而且玩家在游戏过程中也不会有任何惊喜感了。在镜头视图中还可以设置多人模式,这里你可以设置一个分屏模式,在不同的镜头下看到不同的玩家。有的时候,在游戏中有一些元素需要跟随镜头滚动(比如主角),但其他一些元素则是不动的(比如状态信息等),这在GameMaker Studio 2中可以通过镜头视图轻松实现。 在视图属性的顶部,你可以切换视图继承的开关状态,还有一个用于启用视图接口的选项。当你需要在游戏中激活某个视图之前必须选中这个选项。下面还有一个复选框“清除视图背景”,这将会用窗口颜色清除应用 注意:你可以在三个主视图端口设置中分别打开或关闭继承功能,然后给每个镜头视图独立切换继承关系 镜头视图由两组不同的值进行定义,镜头视图本身以及屏幕上要绘制图形视图的端口。这听起来有些费解,因此在解释如何下定义之前先简单说明一下: * 镜头(The Camera):是场景中的一个点,用来设置场景内容如何展示在屏幕上(这是场景编辑器中一个抽象的点,未知会根据视图和视图端口的设置自动设置) * 视图(The View):根据镜头的位置变化显示镜头所见的内容。 * 视图端口(The View Port):镜头视图在屏幕上显示的物理区域。 ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-05-18-12-00-30.png) 比如说,你可以把一个镜头的尺寸设置为640x480然后放到场景中,然后把端口设置成320x240,这个操作会使得镜头缩放到320x240的尺寸显示到屏幕上,你也可以用相同的操作方式把较小的镜头窗口放大显示到屏幕上。通过这个方式,你可以确保不管场景或镜头如何变化,但是在屏幕上显示都是相同的大小。 镜头视图通常都是在场景中的一个矩形区域,以左上角为坐标轴起点,你可以定义镜头区域的宽度和高度。然后你需要通过定义视图端口来去定这个区域在屏幕上的实际显示尺寸,然后同样以左上角为起点设置宽高尺寸。你可以同时设置多个端口,并且相互可以重叠,而在此情况下,它们会根据顺序依次进行绘制。请务必注意整个屏幕区域必然是个矩形区域,因此即便不同的端口重叠以后显示出不规则的形状,最终游戏画面也会以矩形显示,没有端口的区域都将被窗口颜色填充,这意味着在这种情况下,你应当始终注意清除显示缓存,以确保你的端口间隙没有被奇怪的图像填满。 ##### 场景物理属性(Room Physics) ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-06-04-22-02-02.png) 在使用内置的物理方法之前,你必须勾选此处的“启用物理”(Enable Physics)选项。一旦你勾选了这个选项,你就可以开始谁物理场景的属性,这里有一些基本属性你必须提前设定好,这样你的场景内才能让具备物理属性的对象实例正常运转。如果想更好的使用物理特性,你可以使用代码编写。 接下来你需要设置物理世界的重力属性。重力的强度和方向是以(0,0)为基点设置的x/y位置的向量。因此如果在x设置0,y设置1则意味着重力方向为向下,速度为1米/秒。最后,你还需要设置GameMaker Studio 2中像素单位和米的比例尺,以此作为物理计算的基础,你需要不断调整这个设置,直到你使用的对象的平均像素尺寸约等于所模拟的物理对象尺寸的大小。 #### 工具箱(Toolbox) 某些图层类型将允许从顶部的工具箱中进行添加操作(比如,瓷片图层和路径图层)。具体说明将在后续图层介绍中专门介绍。 #### 场景控制(Room Controls) 在场景编辑器的画布顶部,你会看到几个控件,它们可以处理显示内容,他们分别是: **画布网格切换**![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-06-04-22-43-32.png) 这个按钮会开启/关闭编辑器网格画布。在GameMaker Studio 2中网格的默认设置是32x32像素,但是当你开启网格视图后,菜单中会出现以下选项: ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-06-04-22-34-57.png) 这几个选项允许你设置网格的颜色、透明度以及单元格尺寸。你还可以再次启用或禁用网格自动贴合(默认开启)。你可以使用键盘快捷键“G”或按住Shift+G来启用和关闭网格自动贴合 **画布缩放控制**![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-06-04-22-41-52.png) 这些按钮可以控制当前画布的缩放级别,你可以放大或缩小画布,点击![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-05-07-16-33-23.png)按钮可以将正在编辑的图像画布缩放至1:1实际大小。你也可以按住“Ctrl”键然后滚动鼠标滚路来缩放图像,同时按下“Ctrl”键和“回车键”则可以将图像缩放至1:1实际大小。点击![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-05-07-21-43-53.png)按钮则可以直接将图像缩放至符合当前编辑窗口的尺寸() **显示镜头边缘**![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-06-04-22-42-53.png) 点击这个按钮可以开启或关闭镜头外框。开启时你会看到镜头区域显示为一个高亮区域,用以区分场景中的其他区域 **播放动画**![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-06-04-22-43-11.png) 当你在场景中放置了一些动画精灵或素材时,你可以在不用编译整个游戏的情况下,通过点击这个按钮来预览动画效果以了解实际效果,点击这个按钮会同时播放所有带动画的资源,再次点击则会全部停止 **自动选择画布**![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-06-04-22-43-20.png) 默认设置下,你在场景中点选不同元素时,是只能选取到当前选中图层中的资源的,但如果你开启了这个选项,那你就可以点击任意资源,然后当前选中的图层就会自动切换到该资源对应的图层上。你可以使用键盘快捷键“P”来临时开启本功能(按住P时开启,松开关闭) #### 主编辑器(Main Editor) 场景编辑器主窗口是中央区域最大的那块编辑区,在这里你可以放置对象实例和各种资源,绘制瓷砖和定位路径位置等。在这里可以滚动鼠标滚轮来放大和缩小视图,也可以按住鼠标中键或同时按住空格和鼠标左键并进行拖拽操作来移动场景位置。 在创建资源图层或实例图层时,你可以直接从资源树中拖放对应的资源和实例对象来进行放置。你可以从资源树中选择你需要的资源或对象,按住Alt键来预览资源,然后在场景中单击鼠标左键即可添加实例,甚至可以直接像画画一样批量添加。要注意,在使用这种方法批量绘制实例时将会自动贴合场景中的网格设置,但你也可以按住Ctrl键以进行手动绘制(松开就会再次自动贴合网格)。 你可以直接从场景编辑器中新建路径图层,然后在右侧资源树中创建对应的路径资源——或者你也可以直接新建一个路径资源,然后直接把这个路径拖到主编辑器窗口中,就像拖放实例一样——然后在编辑器中编辑路径。至于瓷片组,你可以从瓷片编辑器中直接选取然后在对应图层上进行绘制。 请注意,你可以通过按住Ctrl和鼠标左键一次选择多个资源来进行批量的移动和删除操作,而且场景编辑器中大部分资源都是允许直接进行旋转或缩放操作的(单个或批量都可),只要在资源外框边缘按住鼠标左键不放,然后拖动鼠标即可,你也可以双击单个资源(瓷片、实例、精灵都可)直接进入对应的编辑器,然后在其中调整属性。 #### 状态栏(Satus Bar) 状态来主要用于显示当前窗口中内容的具体信息,状态栏式中显示鼠标所在的坐标信息,同时还会显示当前编辑的图层,正在使用的工具和该工具的状态等各种信息。 ### 继承(Inheritance) 在场景编辑器中最重要的功能大概就是这个继承了,继承意味着你可以创建一个“父”场景,然后创建一个集成了这个“父”场景所有属性的“子”场景。这个子场景完全复制了父场景的属性和设置,紧密相连。这意味着你只需要修改父场景中的镜头视图,或是改变瓷片和实例的数量、位置或任何资源,所有的改变都会作用到相关的子场景中,如下图所示,你还可以为某些图层或资源单独设置开关是否继承: ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-06-05-17-18-49.png) 可能一下子介绍缺乏足够的画面感,我们来看这样一个例子:比如你在场景中建造了一座城市,中央放了一座城堡。城市和城堡是用不同的瓷片贴图绘制而成,你还在其中设定了一些NPC的对象实例以及路径。然后你希望再做一个场景,这个场景跟上面的场景完全一样,只是其中的城堡被摧毁了。这种情况下你可以照常创建一个初始场景,然后创建一个继承这个场景的子场景,然后再子场景中把城堡区域的图层的继承给关闭,然后重新绘制一个被摧毁的城堡。这样当玩家进入这个场景时,就会自动继承父场景中除城堡以外所有的实例和元素。 *重要提示:如果你对任何带有继承属性的内容进行编辑操作,其继承属性会自动关闭,而不用特意去点击按钮关闭继承关系* 要创建带有继承关系的场景,你只需在原先的场景上点击右键然后选择创建子场景即可,如下图: ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-06-06-09-12-13.png) 你还可以从资源树中把任意场景直接拖放到另一个场景之上,使其变成该场景的子场景(或从父场景中将子场景拉出以断开继承关系)。这里要注意,继承关系是可以多级并行的,整个场景可以继承,其中的某个图层也可以继承,甚至图层上单个资源也可以单独设置继承关系,甚至场景之间也能多级继承(比如场景C继承自B,而B则继承自A)。如果你创建一个除了镜头视角设置以外空无一物的场景——那么——你可以把你之后创建的所有场景都定义为该场景的子场景。但是你也可以另外在单独创建一个基于镜头视图场景为基础的场景,然后在其中绘制通用的GUI界面和一些控制器,然后再创建子场景来继承这些GUI和控制器,以及其父场景的镜头视图设置。 如你所见,继承功能十分强大,当你需要加快项目进程,又希望各个场景尽可能保持清晰时,使用继承功能可以大量减少你设计场景所消耗的时间。 ### 图层(Layers) 首先明确一点,游戏场景中所有的内容都是放在图层上的,你可以在图层编辑器中添加、删除图层,也可以在此进行排序操作,并且图层分为几种不同的类型,每一种图层都有自己的设置和运作方式。每种图层的数量是没有限制的,并且你可以同时放置不同类型的图层。每种类型的图层都有自己的属性窗口,你还可以设置图层的可见性(不可见的图层不会在运行时消耗资源,并且可以随时通过设置属性来改变可见性)。 ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-06-07-15-59-35.png) 上图是图层编辑器,上方列表中是各种不同类型的图层,创建图层的按钮则在底部。你可以重命名任何图层(仅可用字母、数字和下划线),还可以单击右侧的眼睛图标来切换图层的可见性。如果当前场景是从父场景中继承的图层,则可在底部切换继承关系,但要注意,这个设置会影响所有图层。你也可以按住shift或ctrl然后通过鼠标左键多选图层来批量删除。 为了使图层条理清晰,你可以单击添加文件夹图标来创建一个图层组。你也可以点击删除图标来删除图层。所有的图层都有一个“深度”属性,这个属性定义了该图层在场景中所处的位置,深度值低的图层会覆盖在深度值高的图层上方,因此一个深度为-100的图层会覆盖在一个深度为200的图层之上。 *重要提示:深度值的最小和最大值分别是-16000和16000,任何超出这个范围的图层都不会显示出来,但其事件都还会正常触发。* 如果你在图层上单击右键,会显示下列图层菜单: ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-06-14-20-13-17.png) 在这里你可以打开所选图层的属性窗口,删除图层,重命名图层或复制图层。还可以添加子图层,如果你选择添加子图层,当前图层将会变成“文件夹”图标,用以表明其有附属的子图层,并在其中创建新的图层。然后你可以选择子层是否继承父层属性以及可见性。 请注意,你可以在这个窗口中直接按住某个图层向上或向下拖动来调整图层的顺序,也可以按住shift然后左键选择两个图层(两个图层之间所有的图层都会被选中)或用Ctrl和左键来自定义多选图层。如果你把几个图层拖放到某个图层文件夹之上,这些图层都会被移入文件夹显示为子图层。你也可以锁定图层以避免图层被不小心修改掉。 *注意:在编辑器窗口中你必须在不同的图层上放置不同的素材,你也可以按住P键来快速选中任何图层种的资源(这样可以免除先选中图层的操作)* #### 背景图层(Background Layer) 你可以单击背景图层按钮来添加新的背景图层,这个操作会添加一个新的图层,然后打开背景图层属性窗口: ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-06-14-20-21-25.png) 当你创建一个新的背景图层时,默认是个空的没有任何素材的图层,如果你不给背景图层设定专用的精灵图片,那就只会显示默认的背景色。你也可以点击选色器来修改这个颜色。如果你选定了一个精灵,你还可以选择下方的平铺选项,可以在水平方向或垂直方向铺满整个场景,或者直接将图片缩放以填满整个场景。 #### 实例图层(Instance Layer) 你可以单击实例图层按钮来添加新的背景图层,这个操作会添加一个新的图层,然后打开实例图层属性窗口: ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-06-14-21-42-49.png) 这个窗口仅显示当前图层中所有实例的列表,你可以打开资源树,然后把对象拖到场景编辑器中,或在资源树中直接选择一个实例然后按住“Alt”键来进行预览,然后在场景中单击左键就会在点击的位置生成一个对应的实例,你甚至可以用这个方法拖动鼠标直接“绘制”实例。 在列表中单击并拖拽实例位置可以进行排序操作,但要注意这个排序仅仅是在编辑器中方便查阅,如果需要控制实例的创建顺序,需要在场景的设置窗口或菜单中打开排序窗口(下文有介绍)。 双击任意实例——无论在编辑器中或是在本列表中皆可——就会打开下面的窗口,这个窗口可以修改实例的部分属性: ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-06-14-21-42-51.png) 在这里你可以修改唯一ID,设置是否从父场景进行继承,或是要单独设置实例属性。你还可以打开这个实例的对象编辑器,活在当前窗口修改实例的部分显示特征,包括颜色、旋转角度、翻转模式(水平/垂直)。你甚至可以缩放高宽的任一值或是设定其坐标位置。 最后,你也可以给实例创建一些代码,这些代码会在对象“创建事件”的代码之后运行,并且仅对这一个实例起效(因此,你可以在对象中设置所有实例的变量,然后在这里进行修改以确保唯一值)。单击创建代码的按钮将打开一个代码编辑窗口,你可以在此添加或修改任何变量,要注意,你可以独立于场景继承关系单独切换这个代码的继承关系。 另外要注意,当导出游戏时,图层上的实例都会被自动标记为需要导出,然而你可能并不希望某个实例最后出现在某个场景中,这种时候你只需要在实例左侧的导出复选框中取消选中即可,但是要注意,如果你的代码中有引用这个实例的内容会导致游戏无法允许,需谨慎使用。 #### 瓷片图层(Tile Layer) 你可以单击背景图层按钮来添加新的瓷片图层,这个操作会添加一个新的图层,然后打开瓷片图层属性窗口: ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-06-14-21-42-38.png) 在瓷片图层属性中你可以开关图层的继承属性,如果你不希望图层网格和场景的(0,0)位置完全对齐,你可以修改当前使用的瓷片集的x、y偏移量。你还可以设置图层的深度(该属性有独立的继承开关),你也可以锁定这个深度,以避免误操作修改掉。 当图层属性打开时,同时在编辑器窗口右侧还会打开一个“瓷片编辑(Tile Editing)”窗口,这个窗口会显示你目前实用的瓷片集(如果你不小心关掉了这个窗口,可以在顶部菜单中再次打开,后文会进行介绍)。你可以在瓷片编辑窗口中单击选择任意图块以将其设为画笔,然后再场景编辑器的图层中进行绘制,如果你需要同时绘制多块瓷片,你可以用鼠标多选进行分组,然后选中以设置为画笔进行绘制。如果你要绘制的瓷片没有连在一起,那你可以按住Ctrl键然后多选几个瓷片来创建一个自定义笔刷(你也可以用Alt加鼠标左键来移除自定义笔刷)。 要注意,在笔刷窗口中你可以用鼠标滚轮或顶部的按钮来放大或缩小瓷片,也可以使用鼠标中键或按住空格键来平移瓷片。另外在上方还有个网格选项,可以打开或关闭网格视图,也可以设置网格的颜色。在瓷片编辑窗口中你还可以从“库(Libraries)”标签中选择画笔(Brushes)、动画(Animated)和“自动瓷片(Auto Tiles)”等功能,这些功能以后会单独介绍。 当你选中瓷片图层时,你还会在场景编辑器的顶部看到以下工具选项: | 图标 | 说明 | | --- | --- | | ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-06-14-21-43-47.png) | 这是铅笔工具,可以以你选中的瓷片为画笔直接在场景中进行绘制,右键则是擦除功能。要注意在场景编辑器下方状态栏中会显示出瓷片的索引值,如果你多选了几个瓷片,则会显示所有瓷片的索引值列表。 | | ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-06-14-21-44-10.png) | 当你选中橡皮擦工具时,鼠标左键即可擦除你在场景编辑器中选中的瓷片。其实,这个操作是把瓷片索引值设为0,就是保留默认的“空”图块。 | | ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-06-14-21-44-25.png) | 使用填充工具时,会用你当前选中的瓷片填满整个图层或你选中的区域。你可以使用单个瓷片为画笔或多选几个瓷片自定义的画笔来填充(甚至可以使用动画库中的内容)。如果你没有先用选择工具来选择一个区域,则会自动填满所有连续的空白图片或具有相同索引值的连续瓷片区域,如果你在图层中选取了一个区域,则会填满这个区域。 | | ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-06-14-21-44-36.png) | 使用线条工具时,你可以选择一个起始位置和一个终点位置,然后会用你选中的瓷片在两点之间绘制一条直线,如果你在图层中用选择工具选择了一个区域,则只会在该区域内绘制,你可以用单个瓷片或自定义的复合画笔来进行绘制。 | | ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-06-14-21-44-42.png) | 使用矩形工具时,你可以用鼠标左键拖放一个区域,左上角起始位置,右下角是释放鼠标的结束为止,该区域会自动填满你选中的瓷片画笔,可以是单个瓷片或自定义的复合画笔。如果你在图层中选择了一个区域,则只在选中区域内绘制。 | | ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-06-14-21-44-50.png) | 选择工具可以在图层中选中一个区域,让后续操作只能在该区域中生效(铅笔、翻转、镜像等),点击该按钮后直接用鼠标拖放即可创建选区。 | | ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-06-14-21-44-54.png) | 自动瓷片工具可以开启自动平铺模式,当你设置好自动拼贴的选项后,只要从自动调整库中选择任意图片然后在场景中随意绘制,都会自动铺满对应区域,瓷片的匹配关系会自动进行。要注意,如果你选择了不属于自动绘图库中的瓷片集,并从中选择瓷片将会自动把绘制工具切换为普通的铅笔工具。 | | ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-06-14-21-44-57.png) | 这个继承工具可以给指定图层内的特定瓷片启用/禁用继承关系,只有子场景才可使用这个功能,并且图层必须开启继承属性。在该状态下,场景编辑器会默认继承所有的瓷片内容,然后单击鼠标右键可以关闭某个瓷片的继承关系,单击鼠标左键打开继承关系。由此,你可以重新利用“基础”场景中的元素,并有选择性的进行继承。 | | ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-06-14-21-45-01.png) | 单击翻转工具(或快捷键X)时,你所选中的瓷片会垂直翻转后进行绘制(如果你有自定义画笔,则整个画笔都垂直翻转),如果你没有选中画笔瓷片,而是选中了图层上已经绘制的瓷片,则该瓷片直接翻转。 | | ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-06-14-21-45-04.png) | 单击镜像工具(或快捷键Y)时,你所选中的瓷片会水平翻转后进行绘制(如果你有自定义画笔,则整个画笔都水平翻转),如果你没有选中画笔瓷片,而是选中了图层上已经绘制的瓷片,则该瓷片直接翻转。 | | ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-06-14-21-45-08.png) | 用鼠标左键单击该旋转工具(或快捷键“Z”)时会90度顺时针旋转当前选择的图像,而不需要修改任何绘制工具(如果你定义了自定义画笔,则整个画笔相关瓷片都会旋转)。如果你没有选中画笔瓷片,而是选中了图层上已经绘制好的瓷片,则该瓷片会直接旋转。 | 当你在场景中绘制瓷片图层时,鼠标左键为绘制,右键为删除,并且瓷片总是会根据瓷片集属性中的网格设置自动贴合——如果你不需要这个功能,那你最好考虑使用素材图层。 要注意当你使用选择工具在场景编辑器的画布中选择了一个区域并且进行了复制或剪切的操作,那这部分图像就会临时成为你的绘制画笔。 更多信息请查阅瓷片集编辑器一节。 #### 路径图层(Path Layer) 你可以单击背景图层按钮来添加新的路径图层,这个操作会添加一个新的图层,然后打开路径图层属性窗口: ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-06-14-21-42-26.png) 当你创建了一个路径图层以后,你可以从资源树中选择用于这个层的路径(path),然后修改连线的类型(平滑与否),是否闭合以及路径的精度。要注意,你也可以开关继承关系,并将路径设置为特定的颜色(默认为红色),以便在编辑器中更容易看到路径。如果你没有事先定义路径资源,也可以点击“新建”按钮来创建一个。路径图层也是具有深度属性的(默认锁定不可修改),尽管在实际游戏中路径图层本身并不会被渲染显示出来。 另外你要注意,你可以在编辑器中直接单击左键来增加节点,或用右键删除某个点,或直接在某个点上按住鼠标左键拖拽以修改位置,在场景编辑器中路径的操作是非常方便的。如果你按住ctrl然后用鼠标点击不同的路径,就可以复选几个路径,你可以同时移动被选中的路径,或通过菜单批量删除。 当你选中某个路径时在编辑器窗口单击右键你会看到以下选项: ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-06-14-21-42-29.png) 你可以在此选择水平或垂直翻转,也可以调转路径方向(这个效果非常不易察觉,意思是将路径起点设为终点,原来的终点则变成起点)。你也可以在菜单中直接删除所选的节点。要注意你可以按住“T”,“S”或“R”,然后点击并拖拽来进行变形、缩放和旋转路径的操作。 ### 素材图层(Asset Layer) 你可以单击背景图层按钮来添加新的素材图层,这个操作会添加一个新的图层,然后打开素材图层属性窗口: ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-06-14-21-42-13.png) 素材图层就是用来直接往场景中放置精灵图像的,你可以在资源树中直接拖拽精灵到编辑器中,或在资源树中选中你要的精灵,然后按住Alt键然后用鼠标左键直接在编辑器中“绘制”即可。精灵图像很类似瓷片,但是精灵是可以表现动画效果的——当精灵包含多个图像资源时,这些图像会依次展现——另外精灵也没有瓷片的相关限制,比如不会像瓷片一样强制贴合网格,长度和速度也可以任意控制。把精灵资源放到素材图层上时,他们也会根据场景的网格来进行自动对齐,如果不需要这个功能,关闭场景的网格视图即可。 把素材放到场景中后,你可以双击资源来打开属性窗口进行修改: ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-06-14-21-42-17.png) 在这里,你可以设定唯一ID,是否需要从父场景继承,甚至修改对应的精灵资源。你也可以修改精灵的一些显示属性,比如颜色,或是将其翻转或旋转某个角度。你也可以对其进行缩放操作,或是修改在场景中的坐标。如果精灵有子图像,你还可以设置动画的播放速度以及初始帧画面,不过默认状态是会锁定精灵编辑器中设置的动画速度的。 要注意,在导出游戏时所有的精灵资源都会被自动标记为需要导出。特别是在使用继承功能时,也许你不希望某个特定的精灵出现在某个特定游戏中时,那你可以在列表左侧的“导出”选项中把它标记出来避免被导出。但是要注意,如果你在代码中引用了这个资源,那游戏就无法正常运行了,因此需要谨慎使用这个功能。 ### 菜单(Context Menu) 在编辑器顶部菜单中,你会看到如下的一个场景菜单选项: ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-06-14-21-41-23.png) 这些菜单的具体功能如下: #### 图层视图(Layer View) 这个选项会打开图层编辑器窗口(如果你之前关闭了该窗口的话)。 #### 场景属性(Room Properties) 这个选项会打开场景属性窗口(如果你之前关闭了该窗口的话)。 #### 图层属性(Layer Properties) 这个选项会打开图层属性窗口(如果你之前关闭了该窗口的话)。 #### 实例创建顺序(Instance Creation Order) 这个选项会打开一个修改实例创建顺序的窗口(这个窗口也可以在场景设置中打开) ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-06-14-21-34-13.png) 这个窗口列出了场景中所有的实例以及其创建顺序(从上往下),如果你对某些实例的创建顺序有特殊要求,可以在此进行排序操作,你只要用鼠标左键按住进行拖放即可调整。 #### 重置当前窗口(Reset Windows On Current Desktop) 这个选项会直接将场景编辑器中的窗口布局重置为默认设置。 #### 瓷片编辑(TIle Editing) 当你选中瓷片图层时这个菜单才会亮起可选,选中以后会看到如下子菜单: ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-06-14-21-25-58.png) 编辑瓷片图层时,你可以按住鼠标左键然后拖放以进行多选操作,也可以按住Ctrl键再用鼠标选中并分组不同瓷片,或按住Alt和左键来删除单个瓷片。在菜单中你可以清除所有选中的瓷片,也可以反选瓷片,还可以复制、剪切选中的瓷片,然后贴去另外的位置(或图层),也可以直接删除选中瓷片。最后一个选项则是打开瓷片编辑器窗口(如果你把这个窗口关闭了)。 #### 图片转换为瓷片地图(Convert Image To Tilemap) Convert Image To Tilemap选项是个十分强大的工具,可以用来导入单张图片,然后从图片中提取需要使用的区域,并将其作为Tilemap来给场景编辑器添加新的图层,创建必需的精灵和瓷片元素。当你选择这个选项时,系统会要求你提供未压缩的图片文件(PNG,GIF或BMP格式),然后加载到游戏中,在加载时你会看到图像导入工具: ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-05-13-23-29-16.png) 在这里有创建瓷片组分割图片的选项设置,你可以设置单元格的宽度和高度,以及图片边缘的偏移量设置。你还可以设置最终创建的精灵的大致宽度(像素单位)。比如说,如果瓷片组是由64x64的单元瓷片构成的,并且你的总宽度设置为200像素,你最后生成的精灵宽度应该在192像素(大约3个瓷片的大小)。如果你不修改这个值则默认为0,GameMaker Studio 2会尽量将精灵生成为长宽单元格数量相同的“方形”。设置好图像的分割属性后,单击“去色”选项边的取色器可以选择你要从最终精灵中剔除掉的颜色,一般会用来删除背景色,或将导入样本中非100%不透明度的内容全部剔除。 最后,你还可以选择用这个工具直接创建精灵、瓷片组甚至瓷片地图图层。当你完成导入后,会自动创建一个精灵,所有的图像都会按网格分布在这个精灵中,就像以这个精灵创建了一个瓷片组一样。在场景中,会创建出一个新的瓷片地图图层,并且会根据生成的瓷片组来重构画面。请注意,使用这个工具并不会直接复刻瓷片,而是会识别单元格与另一个单元格的图像数据是否一致(包括旋转过的瓷片)。你可以在下面的实例图中看到这一点,里面只创建了一个花瓷片,还有一个盒子,但是却有两个实例,其中有一些实例是在原图像基础上旋转得来的。 ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-05-13-23-29-30.png)