天天看點

cocos2d 螢幕適配_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的螢幕比例發生了變化,導緻顯示界面和觸摸事件的坐标會發生錯亂,是以螢幕适配至關重要。