- 精通Cocos2d-x游戲開發(進階卷)
- 王永寶
- 330字
- 2020-11-28 22:37:02
5.3 CocoStudio分辨率適配
可以使用CocoStudio來編輯界面,在CocoStudio中可以設置控件的相對位置和相對尺寸,并在不同的分辨率下進行預覽。
目前制作UI主要使用的是CocoStudio 1.6和CocoStudio 2.0以上的版本,對于CocoStudio 2.0以上的版本,在加載了UI文件之后,會返回一個根節點,將根節點添加到場景中,然后在不同的分辨率下運行可以發現UI文件中設置的相對坐標并沒有生效。這是因為在編輯UI時,所有的相對位置和相對尺寸都是相對于其父節點的,從UI文件中創建出來時,并沒有更新根節點的尺寸,所以創建出來的所有內容都是根據制作UI時的分辨率決定的。
如果需要使其分辨率適配生效,需要設置UI根節點的尺寸為當前場景的尺寸,并執行UIHelper的doLayout()方法,刷新整個UI的布局。
Size frameSize = Director::getInstance()->getVisibleSize(); node->setContentSize(frameSize); ui::Helper::doLayout(node);
在3.10版本的引擎中,CSLoader還提供了createNodeWithVisibleSize()方法用于加載CocoStudio 2.0以上版本輸出的節點文件,并自動刷新UI。