如何正确设置 Cocos2d-x 图片资源

Posted

技术标签:

【中文标题】如何正确设置 Cocos2d-x 图片资源【英文标题】:How to setup Cocos2d-x image resources properly 【发布时间】:2014-02-28 21:04:01 【问题描述】:

我似乎无法正确显示我的视网膜/非视网膜图像。 由于 cocos2d 经常更改语法,我不知道该用什么了。

我已经尝试过教程like this one,但似乎没有任何效果。

我当前的资源设置到资源目录中的sd & hd 文件夹(两个版本的图像具有相同的名称,我尝试添加后缀),我想为非视网膜拉取适当的图像/retina iPad 在 cocos2d-x 中。

目前 cocos2dx 设置目录的语法是什么?我是否必须在设置目录的同时设置特定的后缀?请帮忙。 Cocos2d-x v2.2

编辑** 我正在测试视网膜和非视网膜 ipad。如果我只包括非视网膜图像,它在非视网膜 iPad 上是完美的,并且视网膜上的一切都像预期的那样很小。现在,当我将视网膜图像添加到项目中时,设备会感到困惑并加载随机尺寸,等等,一张是视网膜,下一张是非视网膜。这是因为两个版本具有相同的文件名,但我将它们放在不同的目录 Resouces/sdResources/hd 中。如何设置 cocos2dx v2.2.2 项目从适当的目录加载?我尝试了很多教程和 cocos2dx 示例,它们对我不起作用。

【问题讨论】:

究竟有什么问题?举例说明您的设置(文件名)、您正在测试的设备、您希望看到的内容以及实际发生的情况。 PS:cocos2d-iphone的后缀有:-hd、-widehd、-ipad、-ipadhd。检查***.com/questions/12053485/… 和***.com/questions/17869085/…,最重要的是:cocos2d-x.org/wiki/Mechanism_of_loading_resources 它们也在源代码中。 @LearnCocos2D 更多解释见编辑 【参考方案1】:

因此,经过无数次令人沮丧的反复试验,我终于弄明白了! 我做错了什么是将hdsd 文件夹作为组而不是文件夹引用导入.. 详情见this post

然后我只是这样做了,并且在非/retina 和视网膜 iPad 上完美运行:

AppDelegate.ccp

bool AppDelegate::applicationDidFinishLaunching() 
    CCDirector* pDirector = CCDirector::sharedDirector();
    CCEGLView* pEGLView = CCEGLView::sharedOpenGLView();
    pDirector->setOpenGLView(pEGLView);

    vector<string> searchPath;
    CCSize frameSize = pEGLView->getFrameSize();

   if (frameSize.height > 1024)
       searchPath.push_back("hd");
   else
       searchPath.push_back("sd");
   CCFileUtils::sharedFileUtils()->setSearchPaths(searchPath);

   ...

希望这可以为某人省去麻烦!

【讨论】:

以上是关于如何正确设置 Cocos2d-x 图片资源的主要内容,如果未能解决你的问题,请参考以下文章

cocos2d-x 图片纹理优化 资源加载方案

cocos2d-x 3.0 经常使用对象的创建方式

Cocos2d-x脚本生成资源头文件

Cocos2d-x脚本生成资源头文件

cocos2d-x的图片资源怎么加密?

Cocos2d-x学习资源