setFrameSize(480, 320)是設(shè)..."/>
溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Cocos2d-x開發(fā)之第二篇《設(shè)置模擬器大小及實(shí)際分辨率》

發(fā)布時(shí)間:2020-03-30 19:00:45 來源:網(wǎng)絡(luò) 閱讀:2569 作者:guozhendan 欄目:游戲開發(fā)

接上一篇《創(chuàng)建工程》


1、在D:\cocos2d-x-2.2.5\projects\MyGame\proj.win32中有main.cpp文件,內(nèi)容如下:

 Cocos2d-x開發(fā)之第二篇《設(shè)置模擬器大小及實(shí)際分辨率》

其中的eglView->setFrameSize(480, 320)是設(shè)置模擬器大小的(相當(dāng)于是手機(jī)的實(shí)際尺寸),大家可以根據(jù)實(shí)際情況進(jìn)行設(shè)置。

 

2、在D:\cocos2d-x-2.2.5\projects\MyGame\Classes中的AppDelegate.cpp是整個(gè)游戲的代理文件。由于考慮到Android手機(jī)各種屏幕分辨率問題,所以需要在這里設(shè)置統(tǒng)一的分辨率。如下:

 Cocos2d-x開發(fā)之第二篇《設(shè)置模擬器大小及實(shí)際分辨率》

正是那句CCEGLView::sharedOpenGLView()->setDesignResolutionSize這個(gè)函數(shù)。

第一個(gè)參數(shù)是: 分辨率寬;

第二個(gè)參數(shù)是: 分辨率高;

第三個(gè)參數(shù)是: 圖片適應(yīng)屏幕分辨率的屬性,如:kResolutionExactFit、kResolutionNoBorder、kResolutionShowAll等等,主要用的是這三個(gè)。

 

3、下面分別對(duì)kResolutionExactFit、kResolutionNoBorder、kResolutionShowAll屬性做圖文講解。假設(shè)我們有一張540X960的png圖,然后把模擬器大小設(shè)置成480X320(對(duì)應(yīng)實(shí)際手機(jī)屏幕尺寸),而分辨率設(shè)置成520X800(對(duì)應(yīng)實(shí)際手機(jī)屏幕分辨率)通過如下函數(shù)設(shè)置:

CCEGLView::sharedOpenGLView()->setDesignResolutionSize(520, 800, 屬性);

 

540X960的圖如下:

 Cocos2d-x開發(fā)之第二篇《設(shè)置模擬器大小及實(shí)際分辨率》

 

當(dāng)屬性為kResolutionExactFit時(shí),如下結(jié)果:

 Cocos2d-x開發(fā)之第二篇《設(shè)置模擬器大小及實(shí)際分辨率》

由上得到的結(jié)論是:

背景圖片為了填充整個(gè)屏幕而擠壓變形了,還影響到了其它元素的顯示效果,比如:文本元素Hello World,右下角的按鈕,都變了形。

 

 

當(dāng)屬性為kResolutionNoBorder時(shí),如下結(jié)果:

 Cocos2d-x開發(fā)之第二篇《設(shè)置模擬器大小及實(shí)際分辨率》

由上得到的結(jié)論是:

背景圖片為以原圖片大小居中顯示,只截取了中間的一部分,不會(huì)影響其它元素的顯示效果(通常都用這個(gè)屬性,反正我是用這個(gè)屬性的),要注意的是這里和圖片的setPosition有關(guān)系,這里是setPosition屏幕中間的。

特別提醒:以kResolutionNoBorder屬性時(shí),場(chǎng)景中的精靈位置需要加上CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin();的坐標(biāo),否則會(huì)出現(xiàn)位置偏移的情況。

 

 

當(dāng)屬性為kResolutionShowAll時(shí),如下結(jié)果:

 Cocos2d-x開發(fā)之第二篇《設(shè)置模擬器大小及實(shí)際分辨率》

 

由上得到的結(jié)論是:

背景圖片等比例縮小,直到原始圖片高度與屏幕分辨率高相等,會(huì)影響其它元素的顯示,比如:文本元素和按鈕,顯示的位置會(huì)以大背景圖的顯示區(qū)域?yàn)榛鶞?zhǔn)。

 

 


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI