天天看點

使用cocos creator開發微信小遊戲(二)

1.使用cocos creator開發中涉及的主要内容:

JS腳本

設計模式

遊戲邏輯

AI

微信小遊戲API(主要是 分享 排行 廣告 使用者資訊)

引擎相關(UI控件 UI的适配 UI管理 資源 場景層級編輯 網絡 聲音 prefab)

2.遊戲過程中要避免頻繁的建立與銷毀對象。

在PC浏覽器上測試時可能幀率比較穩定看不出來,釋出到微信上就會比較明顯了

3.關于cocos creator UI适配

橫屏下,建議使用 Fit Width ,豎屏下,建議使用 Fit Height, 有些UI需要添加 Widget對齊挂件,以顯示在相對于螢幕左,頂,右,底的位置

我的遊戲是橫屏的,配置如下:

使用cocos creator開發微信小遊戲(二)

使用者資訊需要顯示在螢幕左上角:

使用cocos creator開發微信小遊戲(二)

4.使用cocos creator開發中碰到的問題及解決方案:

場景工程中沒有被依賴關聯的圖檔聲音或者其它資源,導出到微信後找不到

有些在場景工程中沒有指定而通過代碼中動态加載的資源,cocos creator不會導出到釋出目錄下,需要手動拷貝到對應的目錄或者在工程的場景樹中加一個隐藏的控件指定該資源。

cocos creator微信排行榜子域問題

由于微信排行榜的開放資料隻能在子域擷取,是以相關的UI都應放在子域中。目前1.9.3版本中cocos提供的子域解決方案存在效率問題,是以排行榜最好做成一個彈出界面,平時不顯示。(如果一定要一直顯示,可以降低update的頻率)

cocos creator中子域排行榜在部分安卓手機上會出現模糊的現象,解決方案如下:

主域加上如下代碼:

var openDataContext = wx.getOpenDataContext();
var sharedCanvas = openDataContext.canvas;
if (sharedCanvas) {
sharedCanvas.width = cc.game.canvas.width * 2;
sharedCanvas.height = cc.game.canvas.height * 2;
}

           

子域添加如下代碼:

cc.view._convertPointWithScale=function(point) 
{
    var viewport = this._viewPortRect;
    point.x = (point.x - viewport.x) / (this._scaleX / 2);
    point.y = (point.y - viewport.y) / (this._scaleY / 2);
};
 
cc.view._convertTouchesWithScale=function(touches) 
{
    var viewport = this._viewPortRect, scaleX = this._scaleX / 2, scaleY = this._scaleY / 2, selTouch, selPoint, selPrePoint;
    for (var i = 0; i < touches.length; i++) 
    {
        selTouch = touches[i];
        selPoint = selTouch._point;
        selPrePoint = selTouch._prevPoint;
        selPoint.x = (selPoint.x - viewport.x) / scaleX;
        selPoint.y = (selPoint.y - viewport.y) / scaleY;
        selPrePoint.x = (selPrePoint.x - viewport.x) / scaleX;
        selPrePoint.y = (selPrePoint.y - viewport.y) / scaleY;
    }
};

           

繼續閱讀