剛開始碰到這個問題,有點慌,因為我們遊戲一開始沒有做這個方面的考慮,改動量比較大。
查了網上資料,選擇了一種比較合理的解決方案
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...