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

问题描述 投票:0回答:1

我正在用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 ++的新手,我还没有找到任何相关内容。

谢谢

c++ cocos2d-x
1个回答
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
}
© www.soinside.com 2019 - 2024. All rights reserved.