Cocos2d x螢幕適配原理分析

2021-08-25 05:52:26 字數 850 閱讀 1262

setposition()的變化

之前版本可能已經習慣了ccnode::setposition(const ccpoint &position);和ccnode::setpositioninpixel(const ccpoint &position);但在新的版本裡,只有setposition(const ccpoint &position); 

這裡傳入的引數不是畫素,也和傳統的point有不同,它指的是在designresolutionsize參照下的座標。

驗證交給你自己來:比如設計解析度為480x320,設定乙個sprite的位置為240,160,在480x320解析度下會發現它在螢幕正中,模擬其他解析度,960x640,1024x768,會發現它依然在螢幕中心,這就可了解240,160這個值跟實際螢幕解析度已經無關了,只和designresolutionsize有關,理解這一點至關重要,是後續開發正確空間感的基礎

使用kresolutionnoborder策略時要注意的

ccsize szvisible = ccdirector::shareddirector()->getvisiblesize();

ccpoint posvisible = ccdirector::shareddirector()->getvisibleorigin();

使用該策略時,因為標準背景圖可能會超出螢幕,所以設定位置時需要乙個可視矩形為基準。可以這樣理解,szvisible就是你在實際裝置上能看到的有效區域(螢幕上能看到的區域)的寬高,posvisible就是這個有效區域的起始座標,和szvisible構成乙個可視矩形,一般來說這個可視矩形是設計解析度下可視矩形的子集。

cocos2d x螢幕適配原理

之前,蘋果手機對480 320和960 640的手機適配策略是這樣的,當解析度是480 320時,尋找的是1.png。當解析度是960 640時,尋找的是1 2x.png。這個是1.png的2倍大小,這樣就能保證在不同的解析度手機上都能很好的執行。但是,這給我們的美工增加了不小的工作量,而且安裝包的...

cocos2d x螢幕適配原理分析

開發移動應用的螢幕適配和愛情一樣是乙個從洪荒時代就存在的永恆命題,根本目的是實現在不同裝置上使用者體驗的統一。cocos2d x在cocos2d 2.0 x 2.0.4版本之前沒有提供解決的方案,開發者只能自己解決,其中一些方法見 這裡從2.0 x 2.0.4開始,勤勞的cocos2d x團隊終於著...

cocos2d x螢幕適配原理分析

開發移動應用的螢幕適配和愛情一樣是乙個從洪荒時代就存在的永恆命題,根本目的是實現在不同裝置上使用者體驗的統一。cocos2d x在cocos2d 2.0 x 2.0.4版本之前沒有提供解決的方案,開發者只能自己解決,其中一些方法見 這裡從2.0 x 2.0.4開始,勤勞的cocos2d x團隊終於著...