真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

cocos2dx基礎篇(29)——屏幕適配-創(chuàng)新互聯(lián)

【嘮叨】

成都創(chuàng)新互聯(lián)公司專注于商州企業(yè)網站建設,自適應網站建設,電子商務商城網站建設。商州網站建設公司,為商州等地區(qū)提供建站服務。全流程按需設計網站,專業(yè)設計,全程項目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務

    手機的屏幕大小千差萬別,如現(xiàn)在流行的安卓手機屏幕大部分長寬比例為16:9。而iPhone 5S的長寬比例為71:40(接近16:9),也有預測說iPhone 6S的長寬比例也將會是主流的16:9。另外還有一些平板電腦為4:3、16:10、5:4等等。當然還有一些其他的牌子可能屏幕比例也不一樣。

    要想讓你的程序在各種手機上都能很好的呈現(xiàn)游戲畫面,就需要進行屏幕適配。

【致謝】

    http://gl.paea.cn/contents/10adab2de4f4bf1c.html

【小知識】

    分辨率:是指屏幕圖像的精密度,即顯示器所能顯示的像素有多少。

    如:分辨率480×320的意思是水平方向含有像素數(shù)為480個,垂直方向像素數(shù)320個。

    屏幕尺寸一樣的情況下,分辨率越高,顯示效果就越精細和細膩。

    同時分辨率也反映了屏幕長寬比例(如15:10)。

【3.x】

    請移步:http://shahdza.blog.51cto.com/2410787/1550089


【屏幕適配】

1、兩個分辨率

  1.1、窗口分辨率

    在main.cpp中有個設置窗口分辨率的函數(shù)。該函數(shù)是設置了我們預想設備的屏幕大小,也就是應用程序窗口的大小。

//
	eglView->setFrameSize(480, 320);
//

    1.2、設計分辨率(可視區(qū)域)

    在AppDelegate.cpp中也有個設置設計分辨率的函數(shù)。該函數(shù)是設置了我們游戲設計時候的分辨率,也就是可視區(qū)域的大小,也就是說設計者初衷的游戲可視區(qū)域的分辨率屏幕大小。

    但是對于每個用戶來說,他們使用的設備不一定是(480/320)的,比如手機有大有小。

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

//
	CCEGLView::sharedOpenGLView()->setDesignResolutionSize(480,320,kResolutionShowAll);
//

    以下貼了三張對比圖,加深理解。

  (1)這是原圖片大小,窗口大小為480 * 320。

cocos2dx基礎篇(29)——屏幕適配

    (2)若設置窗口大小為setFrameSize(960, 640),而不設置設計分辨率kResolutionShowAll的情況下,圖片不放縮,原圖還是480 * 320。

cocos2dx基礎篇(29)——屏幕適配

    (3)設置了kResolutionShowAll之后,圖片放縮到適配整個屏幕960 * 640 了。

cocos2dx基礎篇(29)——屏幕適配

2、五種適配模式

    從上面的講解我們可以了解到,setFrameSize()是設置了窗口大?。雌聊坏膶嶋H大小),而這個參數(shù)只是為了我們開發(fā)時作為模擬參照,在實際手機上運行時,手機的屏幕大小是我們無法設置的。

    而屏幕適配的關鍵在于setDesignResolutionSize(),通過它來設置可視區(qū)域的分辨率以及屏幕適配模式。該函數(shù)的前兩個參數(shù)為分辨率(即屏幕長寬比例),而最后一個參數(shù)則是適配的模式。

    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、有圖有真相

        屏幕大?。?00 X 400 。

        可視區(qū)域大?。?80 X 320 。

        根據(jù)上面的計算方法,自己慢慢琢磨吧。cocos2dx基礎篇(29)——屏幕適配

cocos2dx基礎篇(29)——屏幕適配        cocos2dx基礎篇(29)——屏幕適配

cocos2dx基礎篇(29)——屏幕適配        cocos2dx基礎篇(29)——屏幕適配

cocos2dx基礎篇(29)——屏幕適配        cocos2dx基礎篇(29)——屏幕適配

3、橫豎換屏

  cocos2dx開發(fā)的游戲,在手機上運行的時候,默認是橫屏的

   3.1、Android

    AndroidManifest.xml文件中

    (1)android:screenOrientation = "landscape"   //橫屏顯示(默認)

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

cocos2dx基礎篇(29)——屏幕適配

    3.2、IOS

//
	- (NSUInteger) supportedInterfaceOrientations{
		//橫屏顯示
		//return UIInterfaceOrientationMaskLandscape;
		
		//豎屏顯示
		return UIInterfaceOrientationMaskPortrait;
	}
//

4、屏幕大小及坐標

    (1)WinSize:屏幕大小

    (2)VisibleSize:可視區(qū)域大小

    (3)VisibleOrigin:可視區(qū)域的左下角坐標

//
	CCDirector::sharedDirector()->getWinSize()
	CCDirector::sharedDirector()->getVisibleSize();
	CCDirector::sharedDirector()->getVisibleOrigin();
//

    圖解:

cocos2dx基礎篇(29)——屏幕適配

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。


當前標題:cocos2dx基礎篇(29)——屏幕適配-創(chuàng)新互聯(lián)
網頁鏈接:http://weahome.cn/article/jscse.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部