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

Use multiple sprite sheets at once in Cocos2d-x

本文关键字:精灵 一次 Cocos2d-x      更新时间:2023-10-16

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

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

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

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

为了使用 1 个精灵表,我使用以下代码:

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

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

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

我使用了纹理打包器的高级功能:生成.h和.cpp文件。 但您所需要的只是:

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

你只需要多次调用addSpriteFramesWithFile,使用你的所有.plist文件和.png

如果你有很多,你可以创建一个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);
}