cocos2d-x通过指定设计宽度以及缩放方案支持屏幕自适应,示例代码:
CCDirector* pDirector = CCDirector::sharedDirector();
CCEGLView* pEGLView = CCEGLView::sharedOpenGLView();
pDirector->setOpenGLView(pEGLView);
CCSize screenSize = pEGLView->getFrameSize(); //屏幕分辨率
CCSize designSize = CCSizeMake(480, 800); //设计分辨率为480x800
pEGLView->setDesignResolutionSize(designSize.width, designSize.height, kResolutionShowAll); //设置设计分辨率
指定设计分辨率后就可以按设计分辨率的坐标直接设置精灵的位置,程序能自动按设计分辨率与实际分辨率的比值自动调整实际位置、精灵尺寸等,当物理屏幕的横宽比与设计分辨率的横宽比一致时可完美显示,不一致时不同的缩放方案具有不一样的效果:
缩放模式 |
含义 |
物理纵横比 |
四角坐标 |
origin |
visibleSize |
屏幕效果 |
图片效果 |
kResolutionExactFit |
拉伸 |
横向较大 |
重合 |
0,0 |
480x800 |
满屏 |
纵向压扁 |
纵向较大 |
重合 |
0,0 |
480x800 |
满屏 |
横向压扁 |
||
kResolutionNoBor |