Cocos2d x 3 x 螢幕自適應匹配

2021-07-07 02:14:20 字數 1539 閱讀 2831

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

// initialize director

auto director = director::getinstance();

auto glview = director->getopenglview();

if(!glview)

glview->setdesignresolutionsize(1024, 768, resolutionpolicy::exact_fit); // 這裡設定螢幕自適應

// ....其他內容

}1024和768分別是遊戲執行的視窗的寬高,第三個引數resolutionpolicy::exact_fit是設定螢幕自適應的一種方法,其他方法在標頭檔案 ccglview.h中:

// ccglview.h

enum class resolutionpolicy

;

各個引數說明:

resolutionpolicy::exact_fit

exact_fit將拉伸,不會保持原有的寬高比,在拉伸時會連帶裡面的sprite、button等都會拉伸或壓縮, 會發生變形, 因此遊戲介面會被拉伸或壓縮, 但不會出現黑邊。 它適用於個人的小專案, 輕微拉伸不會太影響遊戲的展示,但公司大專案基本不用這個。

resolutionpolicy::no_border

no_border為了保持的寬高比, 等比例拉伸,螢幕寬、高分別與設計解析度寬、高計算縮放因子,取較大者作為寬、高的縮放因子,保證了設計區域總能乙個方向上鋪滿螢幕,而另乙個方向可能會超出螢幕區域, 不會出現黑邊情況。如果螢幕解析度和解析度不同,會將裁剪多出的部分。

resolutionpolicy::show_all

螢幕寬、高分別與設計解析度寬、高計算縮放因子,取較小者作為寬、高的縮放因子。 保證了全部可以顯示到螢幕上,但可能會有黑邊。

resolutionpolicy::fixed_height 和 resolutionpolicy::fixed_width: 

保持高度或寬度不變,resolutionpolicy::fixed_height適合高方向需要填充滿,寬方向可以裁剪的遊戲介面; resolutionpolicy::fixed_width適合寬方向需要填充滿, 高方向可以裁剪的遊戲介面。 它們是no_border的特殊情況,即可以在特定方向來拉伸。

重點推薦resolutionpolicy::fixed_height和resolutionpolicy::fixed_width, 次之是no_border, 除非特殊需要,若一定要全部顯示填充螢幕則可以使用exact_cit,若一定要全部無變形顯示, 則可以使用show_all。

關於cocos2d-x 3.x 的螢幕適配問題的帖子 :

cocos2d x 3 x學習之螢幕適配

設定適配策略 背景的寬和高,適配的策略 show all 960 800 1.2 寬 640 480 1.3 高 800 1.2 960 480 1.2 576 小於640 螢幕上下方會出現黑邊 show all 採用螢幕的寬與的寬,螢幕的高與的高兩個比值較小的因子作為的縮放因子,全部顯示在螢幕上,...

cocos2dx 螢幕自適應

cocos2d x 螢幕自適應 cocos2dx 2.0版本對多解析度適配提供了很好的支援,使用起來比1.0版本要簡單些,1.0版本的適配可以參考 這篇博文。1.做2.0版本的適配首先需要了解下面這些知識。1 適配策略 2.0版本提供了三種適配策略 kresolutionshowall 整個遊戲介面...

cocos2d x 3 x 觸控響應

3.x需要自己註冊監聽事件。有兩種方式,乙個是用c 的bind繫結自定義函式,cocos2d x封裝了一下,提供了介面 cc callback 數字,數字代表引數個數。eventlistener需要兩個引數 touch 和 event 所以這裡使用的是cc callback 2 auto dispa...