引言
cocos creator是什麼?
Cocos Creator 是觸控科技旗下的產品,以內容創作爲核心的遊戲開發工具,在 Cocos2d-x 基礎上實現了徹底腳本化、組件化和數據驅動等特點。
這裏給大家推薦一個cocos creator學習交流羣
屏幕適配是cocos creator面試題中必問的一個題目,今天給大家說說怎麼樣做屏幕適配。
1: 屏幕適配的2個核心的配置
a: 設計分辨率: 美術設計資源時候的分辨率, 也是我們所有資源的參考分辨率,我們就是基於這個分辨率來適配到其它不同的手機分辨率上的;
b: 適配策略: 固定高度/固定寬度;
設計分辨率大家都好理解,那麼什麼是適配策略呢?
假設我們以設計分辨率是 960x640爲例,我們要適配到 1920x1080上面, 大家會發現,這個怎麼適配啊? 960x640----> 1920x1080,高度不一樣,寬度不一樣,有兩個不同的緯度需要適配,這樣的話處理起來有一些難度。遊戲引擎就想了一個辦法,我先在一個緯度保持一致,然後在另外一個緯度來進行適配; 那到底是選哪個緯度呢?如果是高度一致,那麼就是固定高度,如果是寬度一致,那麼就是固定寬度。這個就是固定高度與固定寬度的由來。
固定高度: 960x640, 先做好邏輯分辨率((1920 * 640 / 1080)x 640)適配, 然後,我們在乘以一個比例scale(1080/640), 到1920x1080上;
固定寬度: 960x640, 先做好邏輯分辨率適配 (960 x (1080 * 960 / 1920)), 然後我們在剩一個比例scale(1920/960), 到 1920x1080上;
遊戲引擎處理的大小,座標,都是邏輯大小,遊戲窗口的邏輯大小就是我們固定高度or固定寬度策略算出來以後的分辨率;
所以我們在代碼裏面的大小位置,都是基於邏輯分辨率的,在最終繪製的時候,大小,位置,都會乘以到目標像素分辨率鎖固定的比例scale;
比如 100 * 100, 固定高度, 到 1920x1080後像素大小是 (100x100) * 1080/640, 這樣我們最終就適配到 1920x1080上了;
妙招1: 停靠點
一個緯度和設計是一致的,我們只要考慮另外一個緯度的適配,在另外一個緯度的範圍內,把設計裏面的主要內容都擺佈進來。這個時候就會出現相對的幾個點,比如我的類型是基於中心的,基於上面的,基於下面的… 所有在適配的時候,我們一般會做幾個標誌的參考點,如圖紅色點點
核心原理就是,不管你的屏幕大小怎麼變,我只要動態的根據屏幕大小來調整參考點的位置,這樣,相對於參考點的元素也會跟着移動,一般適配我們都是這樣來做的,那這個適配我們很多都會有組件來完成,例如Widget等。你上邊的logo,無論屏幕怎麼變,都是上面的,下邊的,無論屏幕怎麼變都是下面的。
妙招2: 內容縮放
即使這樣,因爲一個緯度畢竟不同,有可能在這個緯度上,內容放不下,粘到一起了,我們還是的要對內容的大小來做一些調整, 可以根據邏輯分辨率,來做一些內容上的縮放,能讓這些內容排下;
秒招3: 大小調整
有一些UI控件,是區域性的,比如滾動條等,我們希望適配後,區域大小也要隨屏幕的變化而變化,那麼這個時候,可以設置區域相對於邊界的偏移, 如圖:
這樣邊界變了,大小也跟着變了。
其實搞懂了適配的核心原理,一點都不難,下次cocos creator面試題你會回答了麼?