cocos2dx3 螢幕適配問題的解決方案

2021-06-26 20:39:24 字數 1200 閱讀 7594

剛開始碰到這個問題,有點慌,因為我們遊戲一開始沒有做這個方面的考慮,改動量比較大。

查了網上資料,選擇了一種比較合理的解決方案

cocos2dx給了5種方案

1, exact_fit

使用這個選項,可以保證設計區域完全鋪滿螢幕,但是可能會出現介面被拉伸。

2, show_all

按原始比例進行縮放,不變形,為了保證縮放後較長的邊也能完全顯示,較短的邊剩下的位置會用黑邊填充,居中顯示。

3, no_border

這個和上面的show_all相反,按原始比例進行縮放,不變形,為了保證縮小後較短的邊全屏顯示,較長的邊超出螢幕的部分會被裁剪,不會出現黑邊,而且鋪滿螢幕

下面兩種在cocos2d-x 3.x版本裡新新增的(沒仔細了解):

4, fixed_height

保持傳入的設計解析度高度不變,根據螢幕解析度修正設計解析度的寬度。

適合高方向需要撐滿,寬方向可裁減的遊戲,結合setcontentscalefactor(rh/dh)使用

5、fixed_width

保持傳入的設計解析度寬度不變,根據螢幕解析度修正設計解析度的高度。

適合寬方向需要撐滿,高方向可裁減的遊戲,結合setcontentscalefactor(rw/dw)使用。

1,2,3種不推薦

我們遊戲的資源是iphone5的螢幕大小。

寬比較大,所以我選擇了fixed_width

glview->

setdesignresolutionsize

(1136

, 640

, resolutionpolicy

::fixed_width);

寫scene的時候底部的背景需要被拉伸充滿整個螢幕,注意資源要求。

**是:

auto

visiblesize =

director

::getinstance()->getvisiblesize();

cover->setscaley(visiblesize.height / 640);

拉伸y軸

其他的未充滿的小背景,就用

_screensize

= director

::getinstance()->getwinsize();

用百分比來設定位置。

在小背景上的精靈就用小背景的getcontectsize來設定位置。

cocos2d x螢幕適配

第一,對於螢幕適配問題,首先必須理解幾個基本的概念。framesize 實 際上就是裝置的原始解析度,開發環境中可以通過cceglview sharedopenglview setframesize 來設 置裝置的解析度大小,當然也可以可以通過cceglview sharedopenglview g...

Cocos2d x 螢幕適配

為了適應移動終端的各種解析度大小,各種螢幕寬高比,在 cocos2d x 當前穩定版 2.0.4 中,提供了相應的解決方案,以方便我們在設計遊戲時,能夠更好的適應不同的環境。而在設計遊戲之初,決定著我們螢幕適配的因素有哪些,簡而言之只有兩點 螢幕大小 和 寬高比。這兩個因素是如何影響遊戲的 螢幕大小...

cocos2dx 螢幕適配策略

cocos2dx的常用函式 cceglview sharedopenglview setdesignresolutionsize 設計解析度大小 即開發時為基準的螢幕解析度 cceglview sharedopenglview setframesize 設定win32模擬器的解析度 cceglvie...