• 使用图集
    • 加载图集
    • 创建图集

    使用图集

    图集(Sprite Sheet) 是通过专门的工具将多张图片合并成一张大图,并通过 plist 等格式的文件索引的资源,使用图集比使用多个独立图像占用的磁盘空间更少,还会有更好的性能。这种方式已经是游戏行业中提高游戏性能的标准方法之一。

    在使用图集时,首先将其全部加载到 SpriteFrameCache 中,SpriteFrameCache 是一个全局的缓存类,缓存了添加到其中的 SpriteFrame 对象,提高了精灵的访问速度。SpriteFrame 只加载一次,后续一直保存在 SpriteFrameCache 中。

    示例:

    使用图集  - 图1

    单看这个图集,似乎很难分析出什么,让我们对比一下:

    使用图集  - 图2

    这就很容易看出来,它至少完成了将多个图像素材合为一个,同时减少了磁盘空间占用。

    继续来看如何在代码中使用。

    加载图集

    获取到 SpriteFrameCache 的实例,把图集添加到实例中。

    1. // load the Sprite Sheet
    2. auto spritecache = SpriteFrameCache::getInstance();
    3. // the .plist file can be generated with any of the tools mentioned below
    4. spritecache->addSpriteFramesWithFile("sprites.plist");

    这样我们就完成了,将一个图集添加到 SpriteFrameCache 中,现在我们就能利用这个对象创建精灵了!

    创建图集

    手动创建图集资源是一个单调乏味的过程,幸运的是有一些工具能帮助我们自动创建,下面是推荐的几个工具:

    • Texture Packer
    • Zwoptex
    • ShoeBox
    • Sprite Sheet Packer其中 Texture Packer 有一个专门为 Cocos2d-x 写的图集创建指南。传送门