cocos2dx不同解析度下的自動適屏

2021-06-22 17:38:25 字數 1392 閱讀 4949

if(!glview)

glview->setdesignresolutionsize(640, 1136, resolutionpolicy::no_border);

主要在setdesignresolutionsize方法的最後乙個引數,即適屏策略:

no_border:自動根據設計尺寸保證無邊,可能的情況有下面兩種:

當然還有一種是完全吻合

這時要注意的就是以下幾個引數:

director::getinstance()->getopenglview()->setdesignresolutionsize() 

//設計解析度大小及模式

director::getinstance()->setcontentscalefactor() //內容縮放因子

fileutils::getinstance()->setsearchpaths() //資源搜尋路徑

director::getinstance()->getopenglview()->getframesize() //螢幕解析度

director::getinstance()->getwinsize() //設計解析度

director::getinstance()->getvisiblesize() //設計解析度可視區域大小

director::getinstance()->getvisibleorigin() //設計解析度可視區域起點

getvisibleorigin()根據裝置的解析度有可能會不同,所以ui等設定位置時要加上這個的偏移值

resolutionpolicy::exact_fit:這個一般不大用,是保證全部分顯示設計尺寸,會拉伸

resolutionpolicy::show_all:是跟no_border相反,是保證設計尺寸能全屏顯示在可見區域內,有以下兩種情況:

resolutionpolicy::fixed_height和resolutionpolicy::fixed_width:

resolutionpolicy::fixed_height 

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

resolutionpolicy::fixed_width 

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

fixed_height時要注意如果遊戲中的layer以0,0為anchor則要重新設定x軸的偏移量

fixed_width要注意y座標

lua:

realvisiblerect=cc.director:getinstance():getvisiblesize()--實際可見區域大小

realorigin=cc.director:getinstance():getvisibleorigin()--實際原點

cocos2d x 適應不同解析度

相同平台不同解析度 ccfileutils setsearchresolutionsorder 支援檔案分布策略,你可以像如下一樣查詢設定路徑 std vectorresdirorders resdirorders.push back ipadhd resdirorders.push back ip...

Cocos2d x 多解析度支援

最近遇到多解析度支援問題,所以查了一些資料。將一些收穫共享一下,以便自己和其他需要的朋友日後參考。如果我要建立乙個cocos2d x專案,我的目標是支援iphone3g 480,320 iphone4 4s 960,640 iphone5 1136,640 ipad1 2 1024,768 ipad...

Cocos2d x 多解析度適配完全解析

2 五種適配模式 從上面的講解我們可以了解到,setframesize 是設定了視窗大小 即螢幕的實際大小 而這個引數只是為了我們開發時作為模擬參照,在實際手機上執行時,手機的螢幕大小是我們無法設定的。而螢幕適配的關鍵在於setdesignresolutionsize 通過它來設定可視區域的解析度以...