在 Cocos2d-x 中一次使用多个精灵表

Use multiple sprite sheets at once in Cocos2d-x

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

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

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

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

为了使用 1 个 spritesheet,我使用以下代码:

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

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

如有任何帮助,我们将不胜感激。 谢谢

我使用了 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);
}