再聊 cocos2dx quick 適配

2022-03-27 11:56:59 字數 1118 閱讀 5481

適配原理:同比例縮放。

因為只有寬和高同比例縮放,才會

1 不會變形

2 在邏輯上構成的長寬座標的比例才會一致。比如 寬 2pt代表4個畫素,高2pt代表4個畫素,不會出現相同的邏輯長度實際代表的畫素長度是不同的。

比如:適配主要是針對背景和ui元素。

1 一張背景 寬960畫素 高480畫素。我想讓這張在裝置垂直方向上完全填滿顯示。通過縮放可以做到。也一定可以獲得乙個縮放的比例值 r,也就是 高度/裝置高度 。為什麼要求在垂直方向上填滿裝置?因為我這裡的目的是想讓某些布局在垂直方向上的顯示時不超出裝置的螢幕。

2 ui元素怎麼保證?比如高480畫素的裝置,我的一張是20畫素*20畫素的大小,那麼設定位置時(考慮錨點在中心),很容易知道y座標範圍是(0+10,480-10)。超出範圍就會出現顯示不全,或者完全不顯示。這裡我們是因為知道裝置的解析度是 480畫素,的大小是20畫素*20畫素,所以很容易控制。但是,如果裝置高變成240畫素呢?

怎麼保證同樣這張20畫素*20畫素的ui元素依然 在垂直方向上面完全顯示呢?也就是同一套資源在不同的裝置下現實問題。

是的,所有都縮小 2 倍。這時候,ui元素y座標範圍是(0+5,240-5)。也就是說**是要改。這樣肯定不好。我們用過quick就知道,這裡是不用修改**的。原因是高的適配已經做了,引擎會自動幫我們處理。實際上第二次y的座標就是 在之前的基礎上 乘以2而已。所以我們不用管,我們還是認為裝置高依舊是480畫素。因為我們目標是保證在垂直方面填滿裝置,所以問題來了,水平方向會產生***。為什麼?因為我們要保證看上去不能變形,所以一張高和寬的縮放比例要是一致的。也就是的寬也要用 r值進行縮放(高度/裝置高度),這樣寬縮放後,可能比裝置的寬長或者短。比如960畫素,縮小2倍,在寬是400畫素的裝置上顯示,很明顯水平方向就有部分看不到。在寬是500畫素的裝置上顯示,很明顯水平方向就不能完全填滿,會有空隙。這裡我們在水平方向上可以接受的是不能有空隙。也就是的寬縮放後,長度要不能小於裝置的寬度。如果只有一種裝置,比如裝置寬400畫素,那麼寬縮放後是480,這個沒問題。可是還有其他裝置,怎麼保證的寬縮放後,水平方向都沒問題?

我們的的高是固定的,需要計算的是的寬美術應該做多大。看下面

cocos2dx CCScrollView使用示例

總的來說,就是有乙個容器container 錨點 0,0 大小 為全部內容的大小 scrollview 大小,錨點,setdelegate 視窗大小 setviewsize 設定容器 setcontainer 方向 ccnode m pmedalcontainer ccscrollview m ps...

cocos2d實現語音 Cocos2d 聲音API

param url 聲音路徑 cc.audioengine.playmusic url loop 停止背景 param releasedata 是否釋放聲音資料,預設為false cc.audioengine.stopmusic releasedata 暫停背景 cc.audioengine.pau...

Cocos2d x教程第 14 講 Cocos2d

cocos2d x 2.2.0之前的版本常用的json解析的三方庫一般是 jsoncpp 2.2.x的版本中已經包含了jsoncpp的庫,但是卻把名字給換了,導致引入jsoncpp庫的同志們發生各種衝突.完成上述操作後就可以盡情發揮了.下面讓我們來認識一下幾個主要的類 value value 類建立...