纹理页

当您使用GameMaker创建游戏时,您肯定已经创建了图形(精灵、图块和字体)。这些图形存储在纹理页面上,GameMaker通过游戏中包含的所有图像资源为您构建纹理页面。下面是完整纹理页面的示例:

Texture Page Example你可以看到,游戏图形都是以这样一种方式混杂在一起的,它们都适合2的幂大小的页面,例如512x512,1024x512等,最大大小为每页4096x4096像素。请注意,纹理页面的最大大小将取决于所选择的导出平台,因为某些目标将不允许大于2048x2048px的页面,并且即使这样,最大可用大小对于使用目标平台OS的所有设备可能不是最佳的。

另请注意,如果您的图像周围有大量空白空间(即透明像素),则默认情况下将裁剪这些图像,以删除任何"不可见"像素,并将尽可能多的图像打包到单个纹理页面上。如果这不是您希望发生的情况,则需要从"纹理组"窗口中禁用它。

了解不同的可用纹理设置将如何影响图像非常重要,因此让我们查看精灵编辑器部分,标题为纹理设置,如下所示:

Texture Page Options在这里,您可以定义图像在纹理页面上的存储方式,以及是否必须单独存储。您还可以设置必须指定给哪个纹理页面以及其他一些选项(在精灵编辑器页面中有详细说明)。

水平图块和垂直图块

这些内容与放置在纹理页面上时如何创建图像的边有关。

要图块的图像将通过对面的边添加边(水平或垂直),而如果未选择图块,则精灵将被夹住并重复边像素(请注意,图块集还具有输出边框宽度的设置,可在图块集属性中找到,该属性仅对集中的每个图块执行相同的操作)。下图说明了这一点:

Texture Page Results

单独的纹理页面

在这些设置之下是分离纹理页面设置。此选项将强制GameMaker将此图像放置在其自己的唯一纹理页面上,并且没有与此相关的选项,因为平铺或夹紧直接通过代码控制。此选项最常用于3D模型纹理(在这种情况下,纹理应该是2的幂,例如:128 x128,512 x512,256 x1024等),但您可以使用它来强制将任何图像绘制到自己的唯一页面。

注意使用此选项时要小心,因为您可以快速使用所有可用的纹理内存,尤其是在具有过多纹理页面的移动设备上。

如果为精灵指定单独的纹理页面,还可以设置是否为动态

也可以设置将精灵指定给哪个纹理组

应该注意,在游戏选项中可以找到的各个平台选项卡中,有一个按钮允许您查看已定义的纹理页面,就像为每个目标创建纹理页面一样。这对于计算正在创建的页面数以及页面上的内容非常方便。

如果游戏中的纹理大于选定的最大纹理页面大小,则将缩小一半(如有必要,再缩小一半),直到适合最大页面大小。它不会拆分为各种纹理页面上的部分。这意味着,当您在Windows、Ubuntu(Linux)或MacOS上测试游戏时,游戏可能看起来很好,因为您正在使用较大的纹理页面,但是在iOS(或任何其他需要较小纹理页面大小以获得最佳性能的目标)上,纹理可能看起来模糊或有瑕疵。必须确保您的图像能够适应游戏将使用的最小纹理页面大小,如果不能,则应将它们拆分为较小的图像,然后在游戏中将它们绘制在一起,以产生一个大的、完整的图像的错觉。

注意在各种纹理页面上拆分图形之前,请注意这并不总是必需的,也不总是最有效的工作方式。有些游戏的CPU占用可能会比GPU更多(有关详细信息,请参阅调试一节),这些游戏不会从此优化中获得太大好处,您还应该考虑将所有图像放在两个纹理页面上并在它们之间交换是否更好,而不是分散在几个页面上,这只是在浪费内存。