如何创建具有相对路径的精灵?我的意思是我在Resources
目录中有几个文件夹,例如:
其中一个目录设置为应该查找资源的地方:
std::vector<std::string> resDirOrders;
if (device is hd)
resDirOrders.push_back("hd")
FileUtils::getInstance()->setSearchResolutionsOrder(resDirOrders);
现在在上面提到的每个目录中,我都有很多其他目录,例如:
在这些目录中我放置图像。并且,coin.png
main_menu
top_bar
ingame
中Sprite::create("ingame/coin.png");
Sprite::create("top_bar/coin.png");
中的图像名称可能会发生碰撞,这些图像是不同的图像。到目前为止,我希望能够像这样创建一个精灵:
{{1}}
但它不起作用。它只是找不到文件coin.png。
我应该如何解决这个问题?我在Windows上使用cocos2d-x 3.0,但它也应该在iOS和Android上处理。
答案 0 :(得分:5)
文件夹结构必须如下:
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");