天天看點

cocos2dx UI自适應螢幕

現在項目UI改用CocosStudio,擺界面友善太多了,順便螢幕自适應也輕松解決,下面就記錄下操作過程:

1.在UIEditer裡建立一個畫布,然後把Panel的自适應分辨率給勾上;

2.在Panel内随意添加元素了,不過要記得把每個元素的空間布局内的百分比勾上。

OK啦,這個時候把生成的json檔案導出,為了試驗效果,建議将元素分布畫布的四個角落。

然後回到程式,設定螢幕尺寸和遊戲分辨率

CCDirector* pDirector = CCDirector::sharedDirector();
    CCEGLView* pEGLView = CCEGLView::sharedOpenGLView();
    pDirector->setOpenGLView(pEGLView);
	pEGLView->setViewName("Test");
#ifdef _WIN32
	pEGLView->setFrameSize(960, 640); //螢幕尺寸
#endif
    pEGLView->setDesignResolutionSize(960, 640, kResolutionFixedHeight); //遊戲分辨率
    
    // turn on display FPS
    pDirector->setDisplayStats(true);

    // set FPS. the default value is 1.0/60 if you don't call this
    pDirector->setAnimationInterval(1.0 / 60);
           

忘了說了,我這裡的測試環境是cocos2dx-2.2.3+vs2012

運作程式,位置都是對的。

然後,将螢幕尺寸改成(1136,640),UI元素是不是成功的貼合在四角,等比移動了!

最後是注意事項(必看):

1.Panel的子控件布局有絕對布局和相對布局兩種,這裡選擇絕對布局,選擇相對布局有個缺陷,就是如果你要把幾個控件重疊在一起的話,是找不到這個功能的,隻能手動調,是以不用這個;

2.設定遊戲分辨率的參數選擇kResolutionFixedHeight或者kResolutionFixedWidth。kResolutionFixedHeight是遊戲以高度為基準,然後縮放整個遊戲畫面,width同理。

3.設定畫布建立一定要隻大不小,盡量包含所有的尺寸,比如iphone4是960*640,iphone5是1136*640,那麼需将畫布設為1136*640,不然得不到想要的結果的哦。1136*640畫布沒有這個分辨率,儲存的時候記得把尺寸改成1136*640,不然會提示儲存失敗。

4.安卓手機各種規格,平闆跟手機是一種規格,是以我建議把遊戲設成平闆跟手機兩個版本,如果犧牲效果的話,一個版本也行,把畫布尺寸設定好就一切ok了。

繼續閱讀