cocos 手遊開發與 cocos-html5 頁遊的屏幕適配

 一 cocos 手機遊戲常用的屏幕適配方式:
    1:FIXED_WIDTH 固定寬度 (豎屏遊戲常用)
    2:FIXED_HEIGHT 固定高度(橫屏遊戲常用)
    3:SHOW_ALL 會按照設計時的比例顯示出來,如果目標屏幕和設計屏幕的比例不一樣,會留黑邊;
    4:其它,我們這裏不在討論
 二傳統的手機遊戲 app 適配需求
    傳統的手機遊戲 app 按照包的適配,都是全屏遊戲,所以屏幕的大小是固定的,顧通常選取 1, 2, 3 適配
方式。
三 cocos-html5 的網頁遊戲適配需求
   1:在手機上有可能全屏打開網頁遊戲,也有可能在微信裏打開網頁遊戲,微信內置的瀏覽器會留出一個工具欄
出來;
   2:在 PC 上打開網頁遊戲,瀏覽器的窗口可以任意變化,任意大小;
四 如果我們能夠忍受網頁遊戲在手機上有黑邊,我們直接採用 SHOW_ALL 什麼都不用管;
五 如果我們不能忍受在網頁遊戲在手機上運行的時候有黑邊,又要兼容 PC 上打開網頁遊戲後可以任意的改
變大小:
    1:我們只在初始化的時候 只能採用固定高度與固定寬度;
        cc.view.setDesignResolutionSize(DESIGN_WIDTH, DESIGN_HEIGHT, cc.ResolutionPolicy.FIXED_
WIDTH);
       這樣一啓動屏幕區域會充滿全屏;
   2:應對 PC 上瀏覽器大小隨時改變的情況:
  cc.view.setResizeCallback(function() {
        cc.view.setDesignResolutionSize(DESIGN_WIDTH, DESIGN_HEIGHT, cc.ResolutionPolicy.SHOW_ALL)
;
        cc.director.getRunningScene().on_resize();
    });
  這裏我們使用 SHOW_ALL,這樣我們在 PC 上總能顯示正確,而在手機上,一般不能像 PC 一樣自由的改變
大小;
這樣修改後,發現原來的遊戲內容不是出現在正確的位置上,因爲我們的座標全局不都基於開始時候的適配
和座標方式而達到的。爲了應對這個問題,我們在應用層做響應的處理。因爲我們需要重排所有的遊戲元素。
 3:重排所有的遊戲元素
   當我們的大小改變後,我們要重排我們的遊戲元素,看上去很複雜,我們需要將我們的所有的節點重新調
整一次。其實很簡單,我們在做代碼設計的時候,將我們的遊戲場景分爲幾個固定的參考點,比如,四個角
+中心點,在每個地方放一個大的 root,其它所有的元素都基於這些 root,作爲這些 root 的孩子。當有 resize 
的時候,調用 cc.director.getRunningScene().on_resize();
然後每個場景編寫 on_resize 方法,然後根據新的 size,重新調整 這些參考點的 root,就能達到修改適應屏幕的

目的。



當 resize 由左辺到右邊的時候,大小變了,只要重新調整參考點的位置,那麼這樣,所有的內容都調整到中
心處了;



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章