setFrameSize(480, 320)是設(shè)..."/>
您好,登錄后才能下訂單哦!
接上一篇《創(chuàng)建工程》
1、在D:\cocos2d-x-2.2.5\projects\MyGame\proj.win32中有main.cpp文件,內(nèi)容如下:
其中的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)一的分辨率。如下:
正是那句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的圖如下:
當(dāng)屬性為kResolutionExactFit時(shí),如下結(jié)果:
由上得到的結(jié)論是:
背景圖片為了填充整個(gè)屏幕而擠壓變形了,還影響到了其它元素的顯示效果,比如:文本元素Hello World,右下角的按鈕,都變了形。
當(dāng)屬性為kResolutionNoBorder時(shí),如下結(jié)果:
由上得到的結(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é)果:
由上得到的結(jié)論是:
背景圖片等比例縮小,直到原始圖片高度與屏幕分辨率高相等,會(huì)影響其它元素的顯示,比如:文本元素和按鈕,顯示的位置會(huì)以大背景圖的顯示區(qū)域?yàn)榛鶞?zhǔn)。
免責(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)容。