閑來無事,整理了一下cocos2dx的螢幕適配策略,本文適用於想快速理解cocos2dx適配的開發人員。
我們先假設:以854 * 480 的螢幕為標準進行開發,當然,這也就是cocos2dx所說的(Design Resolution)。
先介紹幾個cocos2dx的常用函數:
->setFrameSize() //設定win32模擬器的解析度
一、準備圖片資源
準備一張854 * 480 的圖片,這裡我用紅色線對圖片的四個邊描了一下邊,以保證圖片不能完全顯示時,方便我們看出來。
二、直接使用三種適配策略
//kResolutionNoBorder //kResolutionShowAll 854 * 480 的可見(如在960 * 640的螢幕上)
以上三種原理這裡不再贅述,詳細可參考這裡:http://www.ityran.com/archives/4809
既然我們是以854 * 480 為基準來開發遊戲,那麼我們這裡將設計解析度設定為854 * 480 。
pEGLView->setDesignResolutionSize(854 ,480 ,kResolutionNoBorder);
、看效果
下面,我們設定win32模擬器的解析度為960*640,來看一下三種適配策略的效果。
效果:
pEGLView->setDesignResolutionSize(854 ,480 ,kResolutionExactFit);
這裡可以看出,由於適配策略展開,x,y方向都填滿了,同時也沒有超出螢幕的情況,但是和下面兩張圖片比較,圖片變形了。
kResolutionNoBorder效果:
pEGLView->setDesignResolutionSize(854 ,480 ,kResolutionNoBorder);
這裡也可看出,左右的紅色描邊都不見了,由於螢幕比例和設計比例不一致,該適配策略能夠鋪滿螢幕,但是原圖超出了螢幕。
kResolutionShowAll效果:
pEGLView->setDesignResolutionSize(854 ,480 ,kResolutionShowAll);
這裡,該策略使設計解析度的所有內容均可見,但是由於實際螢幕比例和設計解析度的比例不一致,會出現黑邊的情況。
四、對資源解析度的解釋
對於一個遊戲,多套圖片資源,涉及到在不同螢幕解析度情況下就需要使用不同的圖片資源了,直接點說,大螢幕用大圖,小螢幕用小圖。
同時,由於圖片資源寬高比和設計解析度的寬高比可能不一致,也需要按照某個比例對圖片資源進行縮放。
詳情見:http://www.ityran.com/archives/4809
以上是個人對cocos2dx解析度適配進行了一些簡單的介紹,適合大家快速理解整套適配策略,更加詳細的原理可參考文章給出的連結。