如何在Cocos2d-x中检测是否需要使用UHD,HD或SD

时间:2019-04-02 11:36:10

标签: c++ cocos2d-x

我正在用Cocos2d-x C ++制作平台游戏。

我想做的事确实很简单,但是我在互联网上找到的所有内容都不起作用,或者是针对另一种编程语言(如Objective-C)的。

我有1个Spritesheet,包含3个版本:一个是 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 ++的新手,而我对此一无所获。

谢谢

1 个答案:

答案 0 :(得分:1)

  

const Size&getWinSize()const

     

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

来自https://cocos2d-x.org/reference/native-cpp/V3.0alpha0/d7/df3/classcocos2d_1_1_director.html#aa841a76e9016679ff92bc053e1a41718

大小:https://cocos2d-x.org/reference/native-cpp/V3.0alpha0/d0/d8c/classcocos2d_1_1_size.html

所以我猜是这样的吗?

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
}