cocos2d-x 屏幕适配

AppDelegate.cpp----bool AppDelegate::applicationDidFinishLaunching()

auto glview = director->getOpenGLView();
glview->setDesignResolutionSize(designResolutionSize.width, designResolutionSize.height, ResolutionPolicy::SHOW_ALL);
enum class ResolutionPolicy
{
    EXACT_FIT,
    NO_BORDER,//无黑边,高宽均缩放至全屏
    SHOW_ALL,//全显示,高宽至多一个有黑边,例如16:9在ipad显示,则左右无黑边,上下游黑边
    FIXED_HEIGHT,//高适配(宽度方向(横向)可能显示不全)
    FIXED_WIDTH,//宽适配(高度方向(竖向)可能显示不全)
    UNKNOWN,
};

除去以上引擎设计好的适配方式,在实际项目中,适配的需求往往比较复杂,比如有些部件可以随着屏幕缩放,有些则不需要缩放,那么这个时候就要用到以下设计.
例:贴着屏幕四角的模块,比如摇杆,技能按钮,很多时候不需要缩放,但要保证在四角,这个时候在设置模块位置的时候就要获取屏幕显示的大小去设置。
界面背景需要填满全屏?可以做一张4:3的大图,在ipad上正常显示,在手机上使用宽适配,显示中间区域。
根据不同模块的要求选用不同的缩放和设置坐标,从而实现总体的适配需求。
PS:由于现在市面上出现了很多安卓手机有虚拟按键,导致原本16:9的屏幕比例发生了变化,导致显示界面和触摸事件的坐标会发生错乱,所以屏幕适配至关重要。

你可能感兴趣的:(cocos2d-x 屏幕适配)