cocos2d x 2 x適應多平台多解析度的方案

2021-08-27 07:36:08 字數 1460 閱讀 5271

cocos2d-x從2.0開始支援多平台多解析度,但無論是從官方的介紹還是官方的demo都介紹得比較模糊,其中只提到使用

ccfileutils::sharedfileutils()->setresourcedirectory()

cceglview::sharedopenglview()->setdesignresolutionsize()

這兩個方法來控制。但我感覺通常情況下,demo裡所展示的**並不能滿足大部分開發者的要求。例如拿乙個rpg的遊戲來舉例,一般是地圖是全屏顯示,然後按鈕可能會按固定的邊距放在螢幕的各個位置。下圖分別是在4:3的螢幕和16:9的螢幕上的按鈕排布。

//這裡還不能適應ipad3,ipad4,但規律是一樣的。自行新增相應的適應**即可

if (screensize.height > 320)

else

cclog("designsize width:%f,height:%f", designsize.width,designsize.height);

cclog("content scale factor:%f",pdirector->getcontentscalefactor());

cceglview::sharedopenglview()->setdesignresolutionsize(designsize.width,designsize.height, kresolutionnoborder);

然後在設定主螢幕上的按鈕的座標的時候要注意加上或減去使用相應的偏移量,例如水平方向的偏移量可以這樣獲得:

int offsetx =(ccdirector::shareddirector()->getvisiblesize().width - 480);
但如果你是使用cocosbuilder作介面編輯器的話,那麼恭喜你,基本上你不太需要關注這些偏移值,因為cocosbuilder在設定控制項或精靈的座標時可以選擇使用相對左上,左下,右上和右下四個邊角的偏移。

cocos2dx 2 x定時器分析(2)

1 分析下update型別,即每幀都呼叫的定時器,如何實現 ccscheduler中的成員變數 struct listentry m pupdates0list list priority 0 存放update型別定時器的結構 a list double linked list used for u...

Cocos2d x 3 x 螢幕自適應匹配

在進行遊戲開發時,由於市場上的android移動裝置的解析度有很多種,而且ios移動裝置的解析度也不相同,為了能讓手遊能在90 以上的移動裝置較為完美的執行,因此需要考慮螢幕的自適應問題,讓一套資源能在多種解析度下的移動裝置上執行起來。initialize director auto directo...

cocos2d x怎樣建立多平台專案

剛開始搭建cocos2d x模板時,只是在xcode增加了乙個cocos2d x的工程選項,建立的工程也是當前平台的,但是在往下下的原始碼中,經常看到都是多平台的,如下圖所示 如何建立多平台呢,這就要使用引擎自帶的create project.py指令碼了 xcode下 終端輸入命令 cd coco...