windows环境模拟iPhoneX适配
Posted 振长策而御宇内
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了windows环境模拟iPhoneX适配相关的知识,希望对你有一定的参考价值。
在resolution.ini增加isiPhoneX配置
[resolution]
width=1138
height=640
frameFactor = 1
isiPhoneX = 1
在AppDelegate中读取配置并设置安全区域
int width = 960;
int height = 640;
float frameFactor = 1.f;
bool isiPhoneX = false;
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
wchar_t lpPath[MAX_PATH];
wchar_t widthStr[6] = 0 ;
wchar_t heightStr[6] = 0 ;
wchar_t frameFactorStr[6] = 0 ;
wchar_t isiphoneXStr[6] = 0 ;
wcscpy(lpPath, L"./resolution.ini");
GetPrivateProfileString(L"resolution", L"width", L"", widthStr, 6, lpPath);
GetPrivateProfileString(L"resolution", L"height", L"", heightStr, 6, lpPath);
GetPrivateProfileString(L"resolution", L"frameFactor", L"", frameFactorStr, 6, lpPath);
GetPrivateProfileString(L"resolution", L"isiPhoneX", L"", isiphoneXStr, 6, lpPath);
width = _wtoi(widthStr);
height = _wtoi(heightStr);
frameFactor = _wtof(frameFactorStr);
isiPhoneX = bool(_wtoi(isiphoneXStr));
if (isiPhoneX)
width = 2436.0;
height = 1125.0;
frameFactor = 0.56888889;
PlatformSetting::sharedInstance()->setViewSafeAreaInsets(0, 132, 63, 132);
CCLOG("width = %d, height = %d, frameFactor = %f", width, height, frameFactor);
#endif
///end
Rect rect(0, 0, width, height);
// initialize director
auto director = Director::getInstance();
auto glview = director->getOpenGLView();
#if (CC_TARGET_PLATFORM == CC_PLATFORM_android)
glview = GLViewImpl::createWithRect("ONE PIECE 2", rect, 1.0);
#else
glview = GLViewImpl::createWithRect("ONE PIECE 2", rect, frameFactor, true);
#endif
director->setOpenGLView(glview);
Size frameSize = glview->getFrameSize();
Size designSize(1136, 640);
if (frameSize.width / frameSize.height < 1136.f / 640)
glview->setDesignResolutionSize(designSize.width, designSize.height, ResolutionPolicy::FIXED_WIDTH);
else
glview->setDesignResolutionSize(designSize.width, designSize.height, ResolutionPolicy::FIXED_HEIGHT);
以上是关于windows环境模拟iPhoneX适配的主要内容,如果未能解决你的问题,请参考以下文章
猫猫分享 iOS 适配iPhoneXS Max,iPhoneXS,iPhoneXR