c++ - 如何在 Cocos2d-x 中检测是否需要使用 UHD、HD 或 SD
问题描述
我正在用 Cocos2d-x C++ 制作一个平台游戏。
我想做的事情真的很简单,但是我在互联网上找到的所有东西要么不起作用,要么适用于另一种编程语言,如 Objective-C。
我有 1 个具有 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++ 新手,对此我一无所知。
谢谢
解决方案
const Size& getWinSize ( ) const
返回 OpenGL 视图的大小(以磅为单位)。
大小: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
}
推荐阅读
- sql - 是否可以使用 MERGE 语句使用本地数据库更新 Azure 中的表?
- .net - MVC 应用程序无法登录到 Dynamics CRMOrganizationServiceProxy 为空错误
- python - 如何从元组列表中获取最新日期?
- html - 如何限制网格单元格宽度并防止其内容溢出?
- sql-server - SQL Server:if to Case 转换
- python - 如何创建一个 python 程序,将字符串保存在 csv 中,但全部保存在该行的一个块中?
- c# - 在 CosmosDB 使用 DocumentClient 的删除操作中,必须为此操作提供 PartitionKey 值
- html - 使用 Gatsby 无法在 React 上本地加载图像
- amazon-web-services - AWS CLI 无法连接到终端节点 URL
- excel - 通过 Powershell 使用通配符过滤现有数据透视表