cocos2dx基礎篇 27 螢幕適配

2021-08-28 02:57:09 字數 3766 閱讀 4838

1、兩個解析度

1.1、視窗解析度

main.cpp中有個設定視窗解析度的函式。該函式是設定了我們預想裝置的螢幕大小,也就是應用程式視窗的大小。

//

eglview->setframesize(480, 320);

//

1.2、設計解析度(可視區域)但是對於每個使用者來說,他們使用的裝置不一定是(480/320)的,比如手機有大有小。

而後面的kresolutionshowall,意思是按照原比例(480/320)進行放縮以適配實際螢幕大小。

//

cceglview::sharedopenglview()->setdesignresolutionsize(480,320,kresolutionshowall);

//

以下貼了三張對比圖,加深理解。(1)這是原大小,視窗大小為480 * 320。

(2)若設定視窗大小為setframesize(960, 640),而不設定設計解析度kresolutionshowall的情況下,不放縮,原圖還是480 * 320。

(3)設定了kresolutionshowall之後,放縮到適配整個螢幕960 * 640 了。

2、五種適配模式

從上面的講解我們可以了解到,setframesize()是設定了視窗大小(即螢幕的實際大小),而這個引數只是為了我們開發時作為模擬參照,在實際手機上執行時,手機的螢幕大小是我們無法設定的。

而螢幕適配的關鍵在於setdesignresolutionsize(),通過它來設定可視區域的解析度以及螢幕適配模式。該函式的前兩個引數為解析度(即螢幕長寬比例),而最後乙個引數則是適配的模式。

2.1、適配模式

(1)kresolutionexactfit:拉伸變形,使鋪滿螢幕。

(2)kresolutionnoborder:按比例放縮,全屏展示不留黑邊。

(長寬中小的鋪滿螢幕,大的超出螢幕)

(3)kresolutionshowall:按比例放縮,全部展示不裁剪。

(長寬中大的鋪滿螢幕,小的留有黑邊)

(4)kresolutionfixedwidth:按比例放縮,寬度鋪滿螢幕。

(5)kresolutionfixedheight:按比例放縮,高度鋪滿螢幕。

2.2、計算方法

假設:螢幕解析度(fwidth,fheight) ; 設計解析度(dwidth,dheight)。

放縮因子:k1 = fwidth/dwidth ; k2 = fheight/dheight。

則適配後的解析度大小如下:

(1)kresolutionexactfit:( dwidth * k1         , dheight * k2         )

(2)kresolutionnoborder:( dwidth * max(k1,k2) , dheight * max(k1,k2) )

(3)kresolutionshowall:( dwidth * min(k1,k2) , dheight * min(k1,k2) )

(4)kresolutionfixedwidth:( dwidth * k1         , dheight * k1         )

(5)kresolutionfixedheight:( dwidth * k2         , dheight * k2         )

2.3、有圖有真相

螢幕大小:400 x 400 。

可視區域大小:480 x 320 。

3、橫豎換屏

cocos2dx開發的遊戲,在手機上執行的時候,預設是橫屏的

3.1、android

androidmanifest.xml檔案中

(1)android:screenorientation = "landscape"   //橫屏顯示(預設)

(2)android:screenorientation = "portrait"    //豎屏顯示

//4、螢幕大小及座標(1)winsize:螢幕大小

(2)visiblesize:可視區域大小

(3)visibleorigin:可視區域的左下角座標

//

ccdirector::shareddirector()->getwinsize()

ccdirector::shareddirector()->getvisiblesize();

ccdirector::shareddirector()->getvisibleorigin();

//

**:

cocos2dx 螢幕設定

聲 明 一 設定啥 首先是換豎屏,然後還有個比較重要的,就是自適屏。二 橫豎換屏 1.開啟main.cpp檔案 找到eglview setframesize 320,480 這裡設定成你要的解析度,用於開發。2.生成android專案後修改androidmanifest.xml檔案 android ...

cocos2d x螢幕適配

第一,對於螢幕適配問題,首先必須理解幾個基本的概念。framesize 實 際上就是裝置的原始解析度,開發環境中可以通過cceglview sharedopenglview setframesize 來設 置裝置的解析度大小,當然也可以可以通過cceglview sharedopenglview g...

cocos2dx 螢幕設定

聲 明 一 設定啥 首先是換豎屏,然後還有個比較重要的,就是自適屏。二 橫豎換屏 1.開啟main.cpp檔案 找到eglview setframesize 320,480 這裡設定成你要的解析度,用於開發。2.生成android專案後修改androidmanifest.xml檔案 android ...