图文解说在cocos2d里面如何使用Texture Packer和像素格式来优化spritesheet

2015年03月13日 11:22 0 点赞 0 评论 更新于 2025-11-21 16:56

在Cocos2D中,为了让游戏获得最佳性能,需要将众多小的Sprite图片组合到一张大图中,这张大图被称为Sprite Sheet。

如果你使用Cocos2D已有一段时间,可能已经用过一款名为Zwoptex的工具来生成Sprite Sheet。Zwoptex是一款非常出色的工具,我在许多程序中都使用过它,它确实帮我节省了大量时间。

不过,现在有一款新工具——Texture Packer。它与Zwoptex类似,也能创建Sprite Sheet,但它还有一些极为方便且神奇的特性。

本文将以教程的形式,介绍如何在Cocos2D游戏开发中使用Texture Packer,同时,你还将学习如何使用像素格式(Pixel Formats),以及Texture Packer如何智能地让游戏加载速度更快、运行更流畅,并且在保证游戏界面美观的前提下,尽可能减少内存使用。

澄清:在发布这篇博客之前,我从Texture Packer工具的作者那里拿到了许可证密钥。当时我并未承诺会写一篇博文作为回报,但在使用该工具一段时间后,它确实为我的应用程序减少了大量需要加载的内存,因此我爱上了这款工具。所以,我想让大家都了解它。

这篇教程是为熟悉Cocos2D的人编写的。如果你对Cocos2D完全陌生,应该从“怎样做一个简单的iPhone应用程序”系列和其他一些Cocos2D教程开始学习。(目前这些链接仍是英文,但随着我的翻译进度推进,这些也会相应更新。)

开始

首先,确保你安装了最新版本的Cocos2D。在撰写本文时,版本号是Cocos2D v0.99.5 - rc1;在翻译本文时,已经是cocos2d - iphone - 1.0.0 - beta.tar.gz了。获取最新版本非常重要,因为新版本增加了对一些新图片格式的支持,而这在本文后续内容中会用到。

安装完成后,启动XCode,使用Cocos2D应用程序模板新建一个工程,并将其命名为TextureFun。

下一步,你需要一些图片来制作Sprite Sheets。你可以下载我收集的样例图片,然后解压缩,并将整个解压缩后的目录拖到TextureFun工程的一个子文件夹下,如下图所示:

现在,你已经有了一个工程模板和一些样例图片,是时候使用Texture Packer来制作Sprite Sheet了!

使用Texture Packer创建Sprite Sheet

你需要做的第一件事是下载Texture Packer的免费版本。请注意,你无需购买任何东西,对于本教程来说,免费版本就足够了。

下载完成后,双击“TexturePacker.mpkg”,会弹出一个窗口,按照提示在Mac上完成安装。

安装完成后,在“Application”文件夹中找到并运行Texture Packer。当看到第一个提示窗口时,选择“Use Essentia”(免费版本)继续。

现在,点击工具栏上的“Add Folder”按钮,选择TextureFun/Art/sprites文件夹。Texture Packer会加载图片,并智能地将这些图片布局在Sprite Sheet中,如下图所示:

另一方面,你可以看到所有导入到纹理集(Texture Atlas)中的图片,选中某一张时会看到有一个边框,这是另一个非常实用的功能!你还可以将鼠标悬停在精灵(Sprite)上,查看是否出现走样(Alias)现象(走样指那些被裁剪(Cropping)后的图像看起来实际上是一样的),如下图所示:

顺便说一下,通过点击“Add Folder”按钮添加图片的一些注意事项。首先,当你以这种添加文件夹的方式添加精灵时,Texture Packer并非为每个精灵添加一个索引(Reference),而是为整个文件夹添加一个索引。这意味着,当你以后向该文件夹中添加精灵后,下次运行Texture Packer时,它会根据文件夹下的所有精灵重新创建Sprite Sheet,非常方便!

同时,你不必将所有精灵都放在同一个根文件夹下,可以按照自己的方式将这些精灵放在不同的子目录中(例如sprites/animals,sprites/monsters),之后从Cocos2D中引用它们时,只需指定相对路径即可。

最后,需要注意的是,你可以包含多个精灵文件夹,这在游戏规模较大时非常实用,你可以为每个关卡制作一个Sprite Sheet。

作者信息

feifeila

feifeila

共发布了 3994 篇文章