gpt4 book ai didi

c++ - cocos2d-x 3.0 - 通过相对路径创建 Sprite

转载 作者:太空狗 更新时间:2023-10-29 20:40:31 24 4
gpt4 key购买 nike

如何创建具有相对路径的 Sprite ?我的意思是我在 Resources 中有几个文件夹目录如:

  • 标准
  • 高清
  • ....

其中一个目录被设置为应该查找资源的地方:

std::vector<std::string> resDirOrders;
if (device is hd)
resDirOrders.push_back("hd")
FileUtils::getInstance()->setSearchResolutionsOrder(resDirOrders);

现在在上面提到的每个目录中我都有很多其他目录,例如:

  • intro_popup
  • outro_popup
  • 主菜单
  • top_bar
  • 在游戏中
  • ....

在这些目录中,我放置了图像。据我所知,图像的名称可能会发生冲突 coin.pngmain_menu , 在 top_baringame这是不同的图像。因此,我希望能够创建这样的 Sprite :

Sprite::create("ingame/coin.png");
Sprite::create("top_bar/coin.png");

但它不起作用。它只是找不到文件 coin.png。

我该如何解决这个问题?我在 Windows 上使用 cocos2d-x 3.0,但它也应该在 iOS 和 Android 上处理。

最佳答案

文件夹结构必须是这样的:

Res/
----hd/
----sd/
----ingame/
----hd/
----sd/
----top_bar/
----hd/
----sd/

您应该将 Res 文件夹添加到项目中,并确保选中“为任何添加的文件夹创建文件夹引用”。

设置搜索路径和搜索解析顺序:

Size screenSize = Director::getInstance()->getOpenGLView()->getFrameSize();

std::vector<std::string> resDirOrders;

std::vector<std::string> searchPaths = FileUtils::getInstance()->getSearchPaths();
searchPaths.insert(searchPaths.begin(), "Res");
FileUtils::getInstance()->setSearchPaths(searchPaths);

if (screenSize.width > 1024) {
resDirOrders.push_back("hd");
}
else{
resDirOrders.push_back("sd");
}

FileUtils::getInstance()->setSearchResolutionsOrder(resDirOrders);

然后您可以使用 Sprite::create("ingame/coin.png");

创建 Sprite

关于c++ - cocos2d-x 3.0 - 通过相对路径创建 Sprite ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23716220/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com