## 资源 您的游戏的核心将从资源中创建并添加到资源树中。 这是所有你可以添加的游戏运行所需内容,包括房间,精灵,对象,路径和其他一些内容。 GameMaker Studio 2 中的游戏至少需要一个房间来运行,至少存在一个对象和一个精灵,当然你不止会使用一个! ![](https://lh3.googleusercontent.com/EwR2IftJvJ7vmfQLiF9Z0JGcWGvg2n7TcGB8fC4djrMrBCWyIfOXFQWrYcG2lsKIGaPGAGxhBsuVQL1MHThQF_F4P2u3z_h1kDerF_kbvCRukbw2PTiP6iB3oQ9_SPHFDcmxFcLQ) 您可以通过右键单击资源树来添加资源,然后从弹出菜单中选择“创建”选项(有关此弹出菜单的详细信息,请参阅下文)。所有可用资源操作都是如此,但每种资源都有自己的专用的编辑器,当你完成上述操作时会打开它。 请注意,资源树左上角有“全部折叠”按钮,可用于关闭所有已打开的资源文件夹。 您可以通过单击以下任一按钮,从资源树中查看每种可用资源的简要概述: ### ![](https://lh5.googleusercontent.com/yJWhevZieCAXrsUep4VT5QCKIQ5drnTEDGnMCtwtOn5tNawEA_ZsxeJvcZc0vED_GYmXbrAE9nSJIbhBEdiQlY3FCZKq-Sp4ZDeS37ZdQEOyF6W_KM_flC_r0XO5cmOQUaQzh3rc) 精灵 精灵通常是您创建的游戏中的对象的视觉表现。 因此,精灵使用 GameMaker Studio 2 图像编辑器来绘制图像,或使用外部绘图程序制作并导入到 GameMaker Studio 2 中。使用的图像不一定是单个静态图像,也可以是“条装”图像,即单个文件中含有多个图像,可用于制作一个动画精灵。 例如,以下10张图像就形成一个精灵,是一个跳伞时挥舞着双臂的角色。 实际完成的动画放置在游戏中看起来是这样的:![](https://lh6.googleusercontent.com/gMwN6_RmdUYmqi6jIYw65srjbbUv-OoVX3wkK_Eayt80spW_paqmGcDzSwqXhlL5gWeB0ZQRaMiiuxvQ8WdRglQPcOSCP9oSyYbbAYHswZ1cYMmUb-LrHCnkzLd0r-J0PFDKAFdT) ![](https://lh6.googleusercontent.com/OZto3i4e3QWsvrEysIjaqwHDCCUFSZj6mMYi7JIbmt8kLMZgRAiMxC0zOzHlyIK3QlnQ89jt5ezDSB7--Yu6K_AkU8-KkEirVyEi2hkWQ-T50_Ta_gvgXe4uX6DlzXlWBRK513fr) 像上图这样的精灵通常是一个 PNG 格式的文件,但是 GameMaker Studio 2 也兼容SWF格式的矢量精灵和JSON格式的骨骼精灵(及其伴随的atlas条状图像)。 您可以从精灵编辑器部分中了解更多关于添加和编辑精灵的信息。 ### ![](https://lh5.googleusercontent.com/Toyya_NnWNlboN-cFWYGcpQnfuYBINVSgsxmcYu7Zg3-GMiFwlNRiyfN3Rsdw3v-HBxMwddnmV3tiVzaPn9nfhzqE3FKt_NOc953RBygiMn5ICIBH3QhVHrR6sVA7YcWxrCvmjZ4) 瓷片集 瓷片集从精灵资源中获取,但是由于 GameMaker Studio 2 在创建游戏时会以不同于精灵的方式编辑瓷片集,所以它们被单独分类出来。 基本上,一个基础瓷片就是一个单一图像,GameMaker Studio 2 将根据您所设置的各种值将图像拆分成不同的基础瓷片。 然后,您可以在房间编辑器(或在程序中通过代码)使用这些瓷片在房间中生成瓷片地图。 它们可以在房间中很方便地组合出各种静态物品,如地形,墙壁,背景等,并且它们不需要对象那么多的系统资源。 ![](https://lh5.googleusercontent.com/9hboVZVWwJhqESIlrgBY44sxuxw9ZNDGxvF70LLPU7DYfG4GALVAhcGpYXAMu_jGVrNmC46nicvGvaLrcIycZSQOCO3YtANsMbncL0Dcz5T0AeCP-OTSJ721TOD4p2bcpnHyeGp1) 上图是一个示例精灵,被用作绘制墙壁的瓷片集。 正如你所看到的,它被“分割”成 64x64 个像素块,然后将其放入房间编辑器组合。 注意:瓷片一般是正方形的,所以如果你需要制作其他形状,那么应该在房间编辑器中使用其他形状实例组成的精灵或在资源图层中制作。 您可以从瓷片集编辑器部分中找到有关添加瓷片集的更多信息。 ### ![](https://lh4.googleusercontent.com/8tRzYPDHgBJAGsYDXQK0BnCtzRENtK_H4TguR6ZFQgGjCRiUu8xknJ5cTXCYN2ISEBWFdeekRTFTAuum58RngN_Wh0QWj99uRQ9B4fIHQ8FnNAauvDnrP0IITEuCIbH3Swwv_i_f) 声音 不论是用声音来增加游戏性,还是用声效来提供游戏反馈,以及用音乐来烘托气氛,都说明声音是游戏的重要组成部分。GameMaker Studio 2 兼容WAV,MP3,OGG格式的声音文件。 通常来说,WAV格式的文件适合存放短音效,因为WAV格式文件较大,但是WAV格式不需要解码就可以直接播放。MP3和OGG格式的文件则适合存储背景音乐以及一些需要长时间播放的声音。这两种格式的文件储存同样的内容时远小于WAV格式文件,但是他们需要一定的计算资源来在播放前进行解码。 你可以在声音编辑器部分找到更多有关信息。 ### ![](https://lh3.googleusercontent.com/I05ybxdOF6qg6CmK_UmeXx15sWTxizMU-2MxDNn37Szjvs--657C7DP0piJuMmBSY9GiSTEaqYA7WH6o4jfADihNHjZgT_G2nZ9It8jQyx23jinTmgeEZTbrZQg-b6hZx2lyGrlI) 路径 在您创建游戏过程中的某些时候,您可能需要对象中的实例沿着一定的路径来通过这一关。你可以先简单地在房间中创建一些简单的位置排列,接着让实例在他们之间移动。但这个工作很繁重而且不好修改,测试和适配。这时你需要创建一个路径资源。 路径资源的基本思路很简单-你可以通过在路径编辑器中绘制路径来对路径资源进行定义,然后你可以通过在对象的事件中放置动作模块或者添加代码来使对象在房间中沿着特定路径(来行动)。你可以设置对象跟随路径的速度以及房间中其他一些关于路径的位置和方向的值。 您可以在路径编辑器部分中找到其他相关信息。 ### ![](https://lh6.googleusercontent.com/mHVO7XRbXaReVaFPwYAV7iAvc6s1nEAscs-47ij34DSUOvn-majHwLbuNP0mSQeaark3l7KF4REhJtqXyQ4lOD9WbY1v7K2rsBvEUGyoAJAObiJyx0InZu-v602UTRPZm4x1INpv) 脚本 脚本资源是一个你自己创建的功能函数的代码集合。例如,假设你想让一个敌人在死的时候创造一些实例,比如掉一些金子,产生爆炸或者流血效果,以及发出一些声音。为此你可以将实现这些效果的代码添加到每个对象的中,但是更好的方法是创建一个脚本资源,在其中输入实现上述功能的代码,然后在每个对象中调用它。这样的话,您只需在对象中添加一行调用代码即可调用此脚本实现预期的功能,如果您希望修改一些代码,您只需要在脚本中更改,所有调用的对象会自动运行新的代码,而不需要在所有对象中逐一修改,并且在多个地方改变修改同样的代码。 您可以在脚本编辑器部分找到更多相关信息。 ### ![](https://lh5.googleusercontent.com/IKtrntqFneV-VP6ydQIM27KEs8T2NdA2hOuXqGP97mwy0R6Ggu_spyhn5jsWE9xjD-vFULCYlzs-fhSVllgQNpBZE_hPch8C1xfQbeI8KJVI1uGk1DQVy4ybHCLt3IcZFUi8oz66) 着色器 着色器是一个非常强大的工具,可用于操纵渲染到屏幕上的图像,其速度之快和范围之大都令人难以置信,例如,它可以添加细微的色调给精灵,直到产生全屏失真的效果。基本上它是由两个程序组成,直接运行在显卡上,所以在GPU运行所有工作以及为游戏代码释放CPU周期时速度非常快。完整的着色器由顶点着色器程序和片段着色器程序(也称为像素着色器)组成。这两个微程序一起工作,来操纵显卡在屏幕上显示图形,这样就允许你实时操作渲染到显示缓冲区的位置,颜色和 alpha 信息。 GameMaker Studio 2支持以下着色器语言: | 着色器语言| 平台| | --- | --- | | GLSL ES | 全平台 | | GLSL | Mac,Ubuntu(Linux) | | HLSL11 | Windows, UWP, XboxOne | | PSSL | Playstation 4 | 你可以在着色器编辑器部分找到更多相关信息。 ### ![](https://lh3.googleusercontent.com/DZNB1nfeOUc82AXRQ6jVwhClkvElXUawP9oKGyR1H8cd8hwa4kh1DcFUEDaa8oDRZPMO2H8kyW3mjyvJkhDh6wTpSIQ8iYMFbz3gdxZ7hzJIkpnXw3u923XjWNuY_NubMRF__hT9) 字体 当你在游戏中绘制文本时,默认情况下该文本以标准 Arial 12 号字体绘制。但是为了使字体更独特有趣,您可能希望使用其他不同的字体,这里就要用到字体编辑器了。在字体编辑器中,您可以选择您的计算机中的一种字体,将其导入 GameMaker Studio 2 中,以便在创作游戏的过程中使用,并设置大小,轻重,或者风格等属性。导入并添加为字体资源后,您就可以使用代码或其他操作将其变为绘图了。 注意:如果您在游戏中使用某字体,请确保您拥有该字体的使用许可证,公用或者免版税字体除外。 您可以在字体编辑器部分找到更多相关信息。 ### ![](https://lh3.googleusercontent.com/2nLyW7w_th3bQGfPlxvcGREHEibLmBI56TiJ3srrTdUWKrDoQjJXVPClOD49fPb8lWR6ym3e7kzZwCYviV2utXUZA1kMekYr79hyucW4FLowJLbkllrc0wmml5SxtPhpmiALSRPb) 时间轴 在制作大部分游戏的时候,您会需要让某些事情在某些时刻发生。您可以通过在实例中使用闹钟事件来实现该目的,但是当事情很复杂的时候,闹钟事件就不太适用了,特别是闹钟事件的设置上限为12个。这就是为什么会存在时间轴资源的原因。在时间轴中,您可以设置在游戏内事件的任何特定时刻要执行那些操作,并且可以在不同的事件以及代码中使用可用于对象的所有操作。创建时间线后,您可以将其分配给某个对象,然后该对象的实例将在所放置或者创建的房间在指定时刻执行操作以及代码。 您可以在时间轴编辑器部分找到更多相关信息。 ### ![](https://lh6.googleusercontent.com/GO7-yKkvaxFAEr5t3CfqP2ntIBSRr-zWegO5nmaMyeXQ9DkjMtiUMiDVV5vSC3RhxlG3POKKTIUphvLyLLsCJdAsC7JhB023lv-CjZpLa-NOdhlxCq0i1BecrrbhZrPUfKotI3Wc) 对象 对象是一种我们用来控制游戏的某些方面并做一些特殊事情的特殊的资源。大多数时候这些对象都会关联一个精灵以便可以在房间中看见。但有时候它们也被用作“幕后”控制器来做与用户或时间相关的事情。对象可以被设定一些行为,以及对某些事情或者相互之间做出响应,您在游戏中看到的大部分内容都是基于对象及其交互。请注意,我们说‘基于’是因为您并不能直接把对象放置在房间中,而是将这些对象的实例(相当于对象资源的副本或拷贝)放置入其中。这是非常重要的事情,因为对象和实例不一样,各自有一组可设置的属性。 所有对象都有一组可在对象编辑器中被设置的属性,例如链接精灵,是否使用物理规则,或者设置为其他对象的子对象。他们还具有一系列内置变量,可以在动作模块,脚本以及代码中使用。这些内置变量用于定义实例放置在游戏室中的位置,动画速度,移动方向以及其他一些内容。为了更好地控制随时间推移中的对象,每帧游戏内容都会被分割成一系列事件,所以你可以将代码或动作模块添加到某一个实践中,事件只有在被触发时才会运行,事件可以通过操作鼠标或者与其他实例碰撞来触发。 对象实际上是游戏的构建模块,它与房间一起构成了所有游戏项目的核心。 您可以在对象编辑器部分找到更多相关信息。 ### ![](https://lh4.googleusercontent.com/pRgtSyTpz0DewuOfEjWzozq-ZqaqlIpaU_DsahhCSXQNa69-tnTI3G3gY2ypAxNHed6bvBmT-Ze7RRqdDDeqZ99DyvMV5vU5vL4Zbii3aVQKuETO31qBybmvQD-Gzp-tPT-rHlQh) 房间 您在GameMaker Studio 2中所做的游戏至少需要一个空间来运行(当然可以不止一个),一个房间是一个基础空间,您可以在其中放置组成游戏的对象的实例,这里也是实例的事件触发和实现的场所。当然房间编辑器也是您可用的最强大的资源编辑器之一,因为它不仅允许您添加对象的实例,还可以添加图像,添加背景以及瓷片来绘制创建游戏世界,创建独立于对象/实例系统的额外特殊效果,以及独立于对象来运行代码。房间也可以设置从其他房间继承资源,这意味着您可以创建一个房间,然后在其中加载瓷砖,然后再创建一个房间来继承这些瓷砖,以便使您不必重复两次操作来加载瓷砖。 您可以从房间编辑器中找到更多相关的信息。 ### ![](https://lh4.googleusercontent.com/E5SInl9WmLmHGaol-jGl6IOnlqbOz5nA_SnsSeiJUg7Q9RBXIYmf_ivOesbF-vEJ5rzlbMHF-SaaGEvYu_gbsiQJB49e9_pgyb4I6cBSPkS-_MwePWTZ5Li4c7hhR9v_AOQ3Rz-j) 注释 注释是一个允许你写任何东西的代码编辑器窗口。 它被设计为保留代码片段,游戏信息,待办事项列表,团队沟通等的地方... 您可以从注释编辑器的部分中找到有关添加注释的更多信息。 ### ![](https://lh6.googleusercontent.com/Y7NhTASVARtuUg4ozZ1lYboIFgxU-1s4wB22h8qyrS_-0jkjoeEAPGc37bUKfticYKKvfdLkW6pCAWRGLpABiSe-unLMyo6kk0CUo4_YvGskoelkUXPIQuJcg-560vhP8i-kUUC_) 包含文件 顾名思义,包含文件是在您将游戏导出到目标平台时,希望包含在游戏包中的所有文件。 这些文件可以是从文本文档,图像,到压缩文件,以及可以使用各种文件功能进行访问,遵循文件系统定义规则的文件。 您可以从“包含文件”部分找到有关包含文件的更多信息。 ### ![](https://lh4.googleusercontent.com/ew2HftdJGGhERYMYJj5MqNT2BR-8l_ObU5Mm6mLPRT6vSaTS-0qTUE8bmsiAm3aNaM74ZQj57s30Hg-ZUCdSn4UAC5fpPaSZUA87qrCoe-oC17KRf4yd9O53sNCTJ53g2cIPtdl_) 扩展 扩展是您可以添加的附加文件和代码,以扩展 GameMaker Studio 2 的功能,以及从Marketplace 向游戏添加资源。 扩展的格式将根据最终的目标平台而有所不同,一般它们采用C ++,C#或JavaScript编写,然后使用 GML 中的特定功能来进行解析。 您可以从扩展编辑器的部分中找到有关添加扩展的更多信息。 ### ![](https://lh5.googleusercontent.com/AjtM8QsOPOgPQpOQeu4QLsQjqQoMfpZ6l0BLWRV0UzKfvOhm0jk5rfQRXrndzurUpOMDy89ddOODcm9ThMPBNqehr-iQXEQ_0-bAEmn1_lu8B1flLkagAnTS7AGxS_PnyMKtxFsK) 选项 游戏选项资源由整个项目和您希望导出的每个目标平台的一系列不同选项组成。 无论您提供的平台是什么,您将始终拥有一个主要的游戏选项资源来设置特定项目,如游戏速度等。 有关更多信息,请参阅游戏选项部分。 ### ![](https://lh5.googleusercontent.com/RIYdyusbAlwwkkfr3U1IPnwbHo_yGnNLqP6rWw71l4j8AH6-l4ZjXw3Znt0mv2DcFClfuKgiIQGhdAi0YIwGsnOntrxu9trP-CAmJgtBXp_7ulDNdEBV5yBS8HlteRzA24BPpM1Z) 配置 在这里,您可以选择或创建要用于资源树的配置,以及随后的整个项目。 刚入门时配置可能不是那么重要,但是随着预计目标平台的复杂性和数量的增加,您会发现它们是组织和导出您游戏的宝贵工具。 本质上,它们保存了资源树的不同游戏选项和导出选项的配置,这意味着您可以对 Android 平台进行特定配置,而另一种用于 Windows 平台等。有关详细信息,请参阅配置页面。 如果您想要更深入地了解如何使用这里列出的不同编辑器,那么您应该在这里查看说明手册里说明更详细的部分: * 编辑 ## 右键菜单 使用资源树时,可以在资源或文件夹上点击鼠标右键打开选项菜单: ### ![](https://lh3.googleusercontent.com/fgKASLyta0NDsuog-uyNR-0xfpCQBMenLIsCjPTWjPYXrUAdLWsp1F1iw_IrSOYDWAgCwl8tTa6NEE1YwOSELimNHKtOUqm4M3vIpZHaY793XHUnINodwi3R8unil6XXBhfBaX12) 您可以使用的选项有: 创建 - 创建您打开菜单所点击类型的新资源。 打开属性 - 打开所点击资源类型的资源属性编辑器(请注意,您也可以双击)。 添加现有资源 - 从不同的 GameMaker Studio 2 项目文件夹中添加现有资源。 从我的图书馆添加现有资源 - 从Marketplace库向资源树添加资源。 导入扩展 - 导入扩展资源到您的项目(仅适用扩展资源)。 添加组 - 在点击的位置向资源树添加新的资源组文件夹。 重命名 - 重命名资源或资源组文件夹。 删除 - 从项目中删除资源(将会完全删除,除非您在设置中修改了默认值- 请参见下文)。 重复 - 创建所点击资源的副本。 在资源管理器中打开 - 打开文件资源管理器,该文件位于项目文件夹中资源文件的位置。 请注意,并非所有选项都可用于所有资源类型,你可以使用哪些选项取决于资源类型或是否为文件夹。 ## 项目视图 资源树顶部有一个名为Views的区域,它使您能够设置一个或多个自定义资源树,以便每次只显示您要处理的项目部分,或者以不同的方式显示,例如分级。 默认视图是上面列出的标准资源树布局,但是有两个选项可以让您根据需要来创建新视图。 ![](https://lh6.googleusercontent.com/k9iIv4HLZgTNooo9bIfc0L5C8cOTR2G8S8Q3qHFpS4jxcOWkFs1LbLCuv9Ob0KnLg6XxnGjNb1dJgSAHDWrmM4AiP4asrgjOjG15u_jVNC95f0RZGshZcGyOwFuWxr5SkBAEmUC4) 这将创建从先前选择的视图克隆来的资源树新视图。 因此,如果您在默认视图中单击此选项,那么它将会为您准备一个精确复制的副本,然后基于此进行编辑。 ![](https://lh5.googleusercontent.com/q4AaawmuEPNFsvu9WLWLhBzhhkG7hHBt0uFnrvsIh0gB3zJl9tUZ2IJ4RcMq2umLdtStUGBXGEKyPGzd8vFetHd4GxoUNOkDuYdmHX2DzpXm4IB6QkHNXpyasdnCryjUat1hpw1n) 这将创建资源树的新视图,且不添加任何资源(即空白视图)。 然后,您可以使用鼠标右键菜单(见下文)来添加资源并根据需要进行组织。 当使用除默认项目视图之外的任何项目视图时,您可以随意拖放资源,并将文件夹重命名为任何您希望的内容。 以这种方式,您可以设置适合您需要的资源树视图。 例如,假设您有一个具有多世界的平台游戏 - 您可以使用名为“World 1”,“World 2”等的文件夹创建资源树的“World View”,然后拖动精灵,瓷片集, 与每个世界相关联的实例和房间到所需的文件夹。 或者你在一个团队工作,你想要创建一个“艺术家视图”,那么你可以创建一个资源树,只显示精灵,实例和房间。 您也可以使用按钮![](https://lh4.googleusercontent.com/lnD3BlEFd3DotU3veNHqpxIxBz4cL0NapblCtLAWlb_Vcua0wOvEtrTOKwq_Ez5KXAsPkD0KyAKhxMaRkYlkGVC_hDTD_XC2qj-XBMk3Lt8gIoT-chm0M4nAvh0in09SOTuvRG7d)删除视图(不可用于默认视图),只需点击名称并输入所需的新名称即可重命名视图。 注意,不在默认视图中的资源其鼠标右键菜单略有不同,具有以下选项: ![](https://lh6.googleusercontent.com/P1sinGV10l3xJHPbjercBCkPB8CcIP6jTo5HTTJiM_SEPqWWv8DHhi7CKonNGxehk2CuxElYGR48gsfotNUNDjQP5Tm9tmDcXtNVc1OFVPLUH1_RCSF3NiGrb3AC-PDdsLwRnrPO) 大多数选项都是显而易见的,但应该说明,Create 将允许您在项目的自定义视图中的任意位置创建新的资源(它将被添加到资源树的默认视图中的对应资源文件夹中),并且从默认视图添加选项将允许您将资源从默认资源树传输到自定义视图中。如果您选择克隆默认视图,则所有这些操作都不是必需的,因为所有当前资源都将被复制在其中,但是如果您使用空白视图或使用鼠标右键的删除选项从新视图中删除该项目,那么当需要该资源时,你需要重新添加。请注意,使用“删除”不会从项目中删除资源,并且仍将在默认资源树中显示该资源,如果您希望完全删除资源,而不仅仅是从视图中删除资源,则该视图应该是您所使用的视图。 您现在应该了解了可用于制作游戏的基本资源,因此我们可以继续阅读并了解使用 GameMaker Studio 2 创建新项目的一般工作流程。