[TOC] * * * * * ## 精灵编辑器(Sprite Editor) ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-05-07-16-31-44.png) 精灵编辑器是用于配置你所创建的精灵资源属性的地方,你可以在新建精灵时打开本窗口(在精灵资源文件夹上点击鼠标右键然后选择“创建(Create)”即可),在已经创建好的的精灵上双击鼠标左键或单击鼠标右键选择“属性”也能看到这个界面。整个界面构成如下: ### 精灵名称(Sprite Name) 你可以在此给精灵命名,这个名字是你在整个游戏工程中调用这个精灵的唯一标识,名称中只能包含**字母及数字**以及下划线符号 **“_”**,同时需要注意的是尽管名称里允许使用数字,但绝不能以数字开头,这可能会导致在撰写GML或DnD脚本时精灵失效。 ### 图像(Image) 在这个区域你可以点击按键![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-05-07-16-32-10.png)以进入设置图像尺寸的界面,如下图所示: ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-05-07-16-32-26.png) 在这个界面你可以看到修改前后的预览图像,下方还有两块用于设置图像属性的区域: * **缩放图片**:在这里你可以你可以调整精灵画布以及所有绘制在画布之上的内容尺寸。你可以选择锁定长宽比来进行缩放,也可以设置以像素或百分比为单位进行调整。你还可以根据你的图像类型来选择是否开启线性过度来对图片缩放进行调整(通常开启线性过度会使得像素边缘更加“平滑”,因此在一些像素风格的游戏中最好关闭此选项)。 * **缩放画布**:这个选项仅仅调整画布的大小,而不会对上面的绘图内容造成任何变化。你可以通过选择方向箭头来设定不同的“锚点”并设置尺寸。在下方还有锁定长宽比进行缩放的选项,底部则是设定以像素或百分比为单位进行调整的选项。 当你设定好你所需要的尺寸后,你可以点击“接受(Apply)”来确认本次修改操作并关闭当前窗口。 > 注意:本操作仅对位图精灵有效,而对于“矢量图(SWF)”格式及“骨骼动画(Skeleton animation )”精灵是灰色无效状态的 在这里你还能直接打开图像编辑器来直接绘制你的精灵,或者你可以点击”导入(Import)“按钮来导入现成的图片来创建精灵。常见的位图格式都可以使用(PNG、JPG、GIF等等),同时Gamemaker Studio 2还支持矢量图精灵(SWF)以及骨骼动画(Spine)。想了解更多信息可以查阅导入非位图精灵的内容。注意当导入位图精灵时你可以一次选择多个图片文件,每一个突破文件都会作为子项被添加到同一个精灵之中即一图一帧。 ### 纹理设定(Texture Settings) 这个功能用于管理和使用GameMaker Studio 2中”纹理页“中存储的图像资源,这个功能通常对于桌面平台并不十分重要,但是如果你打算开发手机或网页游戏项目时就显得十分有必要,因为一旦不能正确使用纹理特性可能会对游戏造成不良影响,甚至影响游戏性能。 **“瓷片:横向(Tile:Horizontal)”** 和 **“瓷片:纵向(Tile:Vertical)”** 这两个复选框通常是默认关闭的,因为大多数时候你是用不着瓷片精灵的。但是,在某些特定的情况下,你可以考虑把精灵变成瓷片类型,这种时候你就要把这两个选项勾上,尤其是在某些时候你打算缩放场景尺寸,但是纹理贴图无法正确显示的时候。 如果你的精灵将被用来作为纹理贴图时,你应该把”分离纹理页(Separate Texture Page)“选项也勾上,这样(注意,每个子图像也都将拥有自己的纹理页面,所以如果你的精灵有10帧画面,你最后会生成10个纹理页面)。这会大大增加你的游戏对内存的消耗,因此无比谨慎使用这个功能。另外还要注意,如果你用这个功能来实现3D功能,纹理数量应当是2的冥数级(如128*128,256*256,512*515等)。 最后,你也可以选择纹理组来管理你的纹理资源。基本上,一个纹理组(首先要在纹理组管理器中定义)可以用来统一管理和存储你某个特定游戏场景或关卡中所需的相关图像资源。比如,你可以把第一关所有的图像放进一个纹理组,然后把第二关所有的图像放进另一个纹理组,以此类推……而GameMaker Studio 2会把这些分过组的资源都放在同一个纹理页上,这样可以减少游戏在目标平台上运行时对纹理页进行缓存的需求。 > 提示:这种做法并非总是必须的,这个方法对于性能的提升取决于目标设备的CPU及GPU的性能限制。 ### 碰撞蒙版(Collison Mask) 所有的精灵都有一个”碰撞蒙版(Collision Mask)“来指示这个精灵的可碰撞区域范围,这个区域在生成实例后将被用来检测碰撞事件。 首先你可以了解一下自带的几种碰撞蒙版**模式** * **自动模式**:GameMaker Studio 2会自动以精灵透明度为基准来计算碰撞蒙版(取决于下面将提到的“公差(Tolerance)”设置)。 * **全图模式**:这个模式会自动计算精灵图片的上下左右边界,然后设置对应的碰撞蒙版 * **手动模式**:选择这个模式后,你可以手动设置碰撞蒙版的上下左右的边界值。 除了上述的三种模式以外,你还可以从下拉选项菜单中指定不同的蒙版类型 * **矩形蒙版**:一个简单的矩形碰撞蒙版,效率最高速度最快。 * **圆形蒙版**:创建一个圆形蒙版,计算量稍大会慢一些。 * **菱形蒙版**:创建一个菱形的碰撞蒙版,计算量更大,对CPU的消耗也更多。 * **精确蒙版**:这种类型会严格贴合精灵图像的边框生成碰撞蒙版,如果精灵有多帧不同形状的图像,碰撞蒙版会沿着复合边界生成确保覆盖每一帧画面。这种生成方式非常慢并且会消耗大量的CPU资源。 * **帧蒙版**:这种蒙版会针对每一帧不同的图像单独计算边界并且精确匹配生成蒙版,这是目前最慢的蒙版方案,除非万不得已应当尽量避免使用这种机制。 下面这几张图能大致说明这几种不同蒙版类型的样子 ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-05-07-16-32-45.jpg) 碰撞检测是游戏中非常重要的一个环节,常被直接用于处理游戏中不同对象的相互作用和联系,如果处理不得当可能会影响整个游戏表现。为何如此?设想一下,当两个带有碰撞蒙版的实例相遇时,一旦出现相互叠加的蒙版区域时就会触发碰撞事件,而每个实例的蒙版类型各不相同,可能精确,也可能基于图形本身,下面是不同的蒙版相遇碰撞的几个简单示例: ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-05-07-16-32-59.png) 在下方有一个控制xxx的滑动条,这个可以根据精灵像素的透明度用来调节蒙版的边界容差——这个值越高则会将越多较透明的像素放置到蒙版之外,这些在蒙版之外的像素将不会用于检测碰撞事件,值越低则相反。这个设置同样会作用于包裹体(没有设置为手动模式时)以及精确蒙版模式。 最后你可以针对蒙版设置 **包裹体(Bounding Box)** 的尺寸。包裹体即恰好能容纳精灵蒙版的矩形区域。只有在包裹体内的像素会被用来处理碰撞蒙版以及处理碰撞事件的检测,这个值默认是自动计算的。如果你开启了精确蒙版模式,这个包裹体也会针对每一帧图像单独进行计算。如果你打算自己设置包裹体的尺寸,你可以直接在上下左右的数值框中输入对应的数字,或直接在精灵视图上按住鼠标左键拖放来直接“画”出包裹体的范围。要注意当你在“画”包裹体时,蒙版将根据最终的值自动生成。 值得注意的是当你查看预览窗口时,你可以通过拖拽蒙版四个角的位置来调节蒙版尺寸,效果与输入包裹体的数值相同。 ### 原点/缩放(Origin/Zoom) 在预览窗口上方有一条属性栏目,该处包含了精灵的原点属性设置以及缩放控制。在这里你可以看到精灵的长宽属性,以及一个”原点“的设置项。这个点代表了它在游戏场景中所处的位置,当你在场景中设定在某个指定的X/Y坐标生成这个精灵的实例时,这个原点将严格对应该坐标。默认的原点位置位于精灵的左上角,但大多数情况下你会考虑把精灵的中央位置或其它位置设置成原点,这样更方便操作,只要用鼠标左键单击原点的下拉选项菜单,然后选择不同的预设值即可进行修改。你也可以在精灵的预览图像上任意位置点击鼠标左键来自定义原点的位置,或在X/Y坐标的输入框中输入你想要的位置坐标。 值得注意的一点是,你甚至可以把原点设置在精灵的显示范围之外,你可以在坐标中输入负数或大于精灵尺寸的正整数,这种方式在处理某些特殊的精灵时会很有效。 在右上方的缩放操作则可以缩放预览图像的显示尺寸,中间的图标![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-05-07-16-33-23.png)可以将预览图直接缩放至1:1的尺寸进行展示。 ### 预览(Preview) 预览窗口可以查看这个精灵在游戏中将会呈现的样子,你可以使用鼠标滚轮来进行缩放查看,也可以按住滚轮中键或同时按住”空格键“和鼠标左键来拖放预览区域。你可以通过下文的”帧控制“中的方法来改变预览图的显示。 ### 帧(Frame) 这个区域。你可以在任何一帧上按住鼠标左键并向左或向右进行拖拽来改变帧序列的顺序,同时你也可以在任何一帧画面上双击鼠标左键来启动图像编辑器来进行编辑修改操作。选中的帧画面的右上角有一个”x“图标,点击可以删除该帧。你也可以按住Ctrl键然后用鼠标复选多个帧,此时点击删除图标会把所有选中的帧都删掉。 ### 帧控制(Frame Controls) 帧控制区域主要用来控制和回放预览窗口中的帧动画,点击”播放“按钮可以控制动画的播放以及暂停,点击循环按钮![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-05-07-16-33-44.png)可以切换精灵动画的不同播放模式。 ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-05-07-16-34-05.png)**循环模式**:当动画播放到最后一帧后从第一帧开始重新播放如此循环 ![](http://7xqa61.com1.z0.glb.clouddn.com/Wechat/GMS文档翻译草稿/编辑器窗口/_image/2017-05-07-16-34-01.png)**乒乓模式**:当动画播放到最后一帧后反向播放至第一帧如此循环播放 同时你还可以在输入框中设置动画播放的速度,帧动画的速度可以基于”每秒播放的帧数“或”每一帧游戏播放的动画帧数“两种单位进行设置,在右侧还会显示当前播放的是哪一帧画面的序号,你也可以按住Ctrl再用鼠标左键同时选择多个帧来进行操作。