如何创建具有相对路径的精灵?我的意思是我在Resources目录中有几个文件夹,例如:
> sd
>高清
> ….
其中一个目录设置为应该查找资源的位置:
std::vector<std::string> resDirOrders;
if (device is hd)
resDirOrders.push_back("hd")
FileUtils::getInstance()->setSearchResolutionsOrder(resDirOrders);
现在在上面提到的每个目录中我都有很多其他目录,例如:
> intro_popup
> outro_popup
> main_menu
> top_bar
>游戏
> ….
在这些目录中我放置图像.并且图像的名称可能会发生冲突,就我在main_menu中的coin.png而言,在topame中的top_bar中是不同的图像.到目前为止,我希望能够像这样创建一个精灵:
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”)创建精灵;
标签:cocos2d-x,c,cocos2d-x-3-0 来源: https://codeday.me/bug/20190830/1770745.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。