您好,登錄后才能下訂單哦!
接上一篇《創建工程》
1、在D:\cocos2d-x-2.2.5\projects\MyGame\proj.win32中有main.cpp文件,內容如下:
其中的eglView->setFrameSize(480, 320)是設置模擬器大小的(相當于是手機的實際尺寸),大家可以根據實際情況進行設置。
2、在D:\cocos2d-x-2.2.5\projects\MyGame\Classes中的AppDelegate.cpp是整個游戲的代理文件。由于考慮到Android手機各種屏幕分辨率問題,所以需要在這里設置統一的分辨率。如下:
正是那句CCEGLView::sharedOpenGLView()->setDesignResolutionSize這個函數。
第一個參數是: 分辨率寬;
第二個參數是: 分辨率高;
第三個參數是: 圖片適應屏幕分辨率的屬性,如:kResolutionExactFit、kResolutionNoBorder、kResolutionShowAll等等,主要用的是這三個。
3、下面分別對kResolutionExactFit、kResolutionNoBorder、kResolutionShowAll屬性做圖文講解。假設我們有一張540X960的png圖,然后把模擬器大小設置成480X320(對應實際手機屏幕尺寸),而分辨率設置成520X800(對應實際手機屏幕分辨率)通過如下函數設置:
CCEGLView::sharedOpenGLView()->setDesignResolutionSize(520, 800, 屬性);
540X960的圖如下:
當屬性為kResolutionExactFit時,如下結果:
由上得到的結論是:
背景圖片為了填充整個屏幕而擠壓變形了,還影響到了其它元素的顯示效果,比如:文本元素Hello World,右下角的按鈕,都變了形。
當屬性為kResolutionNoBorder時,如下結果:
由上得到的結論是:
背景圖片為以原圖片大小居中顯示,只截取了中間的一部分,不會影響其它元素的顯示效果(通常都用這個屬性,反正我是用這個屬性的),要注意的是這里和圖片的setPosition有關系,這里是setPosition屏幕中間的。
特別提醒:以kResolutionNoBorder屬性時,場景中的精靈位置需要加上CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin();的坐標,否則會出現位置偏移的情況。
當屬性為kResolutionShowAll時,如下結果:
由上得到的結論是:
背景圖片等比例縮小,直到原始圖片高度與屏幕分辨率高相等,會影響其它元素的顯示,比如:文本元素和按鈕,顯示的位置會以大背景圖的顯示區域為基準。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。