【问题标题】:Use multiple sprite sheets at once in Cocos2d-x在 Cocos2d-x 中一次使用多个精灵表
【发布时间】:2019-04-03 20:30:13
【问题描述】:

我正在用 Cocos2d-x C++ 制作一个平台游戏。

我想做的事情真的很简单,但是我在互联网上找到的所有内容要么不起作用,要么适用于另一种编程语言,如 Objective-C。

我基本上有多个想要在我的游戏中使用的 Spritesheet。我无法将它们合并为 1 个大精灵表,因为它们真的很大。

我只想知道如何包含多个 spritesheets,以便我可以使用它们。

对于使用 1 个 spritesheet,我使用以下代码:

// load and cache the texture and sprite frames
auto cacher = SpriteFrameCache::getInstance();
cacher->addSpriteFramesWithFile("GJ_GameSheet02-hd.plist");

我读到我可以使用SpriteBatch Node,但我还没有找到任何与如何在 C++ 上使用它相关的内容。

任何帮助将不胜感激。 谢谢

【问题讨论】:

    标签: c++ cocos2d-x texturepacker


    【解决方案1】:

    我使用了 Texture Packer 的高级功能:生成 .h 和 .cpp 文件。 但你只需要:

    cache->addSpriteFramesWithFile("Graphics-0.plist", "Graphics-0.png");
    
    cache->addSpriteFramesWithFile("Graphics-1.plist", "Graphics-1.png");
    

    您只需使用所有 .plist 文件和 .png 多次调用 addSpriteFramesWithFile

    如果你有很多,你可以创建一个 for 循环:

    void addSpriteFramesToCache(int i)
    {
    SpriteFrameCache *cache = SpriteFrameCache::getInstance();
    
        cache->addSpriteFramesWithFile("Graphics-" + std::to_string(i) + ".plist",
        "Graphics-" + std::to_string(i) + ".png");
    }
    
    for (int i = 0; i < numberOfFramesToLoad; i++) //
    {
        addSpriteFramesToCache(i);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-21
      • 2012-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多