如何检测我是否需要在Cocos2d-x中使用UHD、HD或SD 我在COCOS2D-XC++中制作了一个PoMatter视频游戏。

如何检测我是否需要在Cocos2d-x中使用UHD、HD或SD 我在COCOS2D-XC++中制作了一个PoMatter视频游戏。,c++,cocos2d-x,C++,Cocos2d X,我想做的事情非常简单,但我在互联网上找到的一切要么都不起作用,要么是针对另一种编程语言,如Objective-C 我有一张有3个版本的spritesheet:一个是UHD,另一个是HD,最后一个是SD 我只需要知道如何告诉程序应该使用哪些资源 我试着用这个: Director::getInstance()->getVisibleSize(); auto winSize = Director::getInstance()->getWinSize(); //gets window siz

我想做的事情非常简单,但我在互联网上找到的一切要么都不起作用,要么是针对另一种编程语言,如Objective-C

我有一张有3个版本的spritesheet:一个是UHD,另一个是HD,最后一个是SD

我只需要知道如何告诉程序应该使用哪些资源

我试着用这个:

Director::getInstance()->getVisibleSize();
auto winSize = Director::getInstance()->getWinSize(); //gets window size (pretty obvious, isn't it?)

if (&winSize == "2048x1536") { //The device uses UHD graphics
    FileUtils::getInstance()->addSearchResolutionsOrder("UHD");
} else if (&winSize == "1024x768") { //The device uses HD graphics
    FileUtils::getInstance()->addSearchResolutionsOrder("HD");
} else { //any other type of resolution -> asumes it is SD
    FileUtils::getInstance()->addSearchResolutionsOrder("SD");
}
但它只返回winSize对象内存地址,因此无法使用它。我只需要看看屏幕分辨率是什么,然后设置我需要的图形类型

对不起,如果这是一个很愚蠢的问题,我是C++新手,我没有发现任何东西。 多谢各位

常量大小和getWinSize常量

返回OpenGL视图的大小(以点为单位)

尺寸:

我猜是这样的

auto winSize = Director::getInstance()->getWinSize(); //gets window size (pretty obvious, isn't it?)

if (winSize.width == 2048 and winSize.height == 1536 ) { 
    //The device uses HDR graphics
}

我可以发誓我昨天看到过这个标题HDR与决心无关。hdr表示亮度的动态范围更大。@bolov是的,我用错了术语。对于HDR,我指的是UHD。谢谢。由于这个原因,我可以知道游戏使用的是什么图形,但它一直给我以下错误:libc++abi.dylib:终止时出现std::out_of_range类型的未捕获异常:basic_string很高兴它有帮助,这个错误可能与这个问题无关,试着做一个最小的工作示例,谁再现了这个错误并提出了另一个问题。我很乐意再次帮助您: