cocos2d-js 開發常見問題


1. 編譯android版本可能出現的問題記錄

如果編譯的時候報錯。出現/platforms/android-14/arch-arm/usr/lib/crtend_so.o: Unknown EABI object attribute 44或者R_ARM_THM_CALL against symbol  xxx,然后編譯不過的問題

解決方案:

在android.mk上加個LOCAL_ARM_MODE := arm

出現原因:

android的編譯默認指令是:

編譯命令始終是compile++ thumb 或者 compilethumb

為什么使用thumb:

thumb指令集是為了滿足一些低端的設備而加上的,使用的是16位的指令集,能壓縮代碼密度,但是指令比普通的32位arm指令弱很多。

通常來說不會出現這個問題。如果自行添加第三方庫的時候有可能會出現,建議大家記錄一下,這個問題比較難發現和解決。

 

2. Web平台廣告接入--addScene廣告接入方法

addSense網站地址:http://www.google.cn/adsense/start/(需要翻牆才能訪問)

注冊addSense成功以后進入后台

1415691860885243.jpg

選擇需要創建的廣告類型之后,點擊生成廣告代碼

1415691879791165.jpg

生成成功后,后台如下圖所示

1415691896875977.jpg

將廣告代碼貼到index.html下。即可完成廣告添加

1415692047301696.png

添加成功后如下圖所示

1415692067712522.png  1415692090440860.png

最后, 關於廣告位置問題,可以根據html格式在index.html進行調整。

tips:如果需要接入百度移動聯盟,騰訊廣告等,也是同樣的做法。

 

3. 如何在Code IDE中運行js-test, 如何運行cocos命令行創建的項目

1)在Cocos Code IDE中新建一個cocos js項目,就叫CocosJsGameSampleTest吧。

2)注意在新建的時候需要選中Create From Exising Resource

如下圖所示:

1415693052369074.png

然后點擊確定生成項目。

3)在項目目錄中找到project.json, 修改project.json中的enginedir值從“../../frameworks/cocos2d-html5”改為 “frameworks/cocos2d-html5”;

4)點擊Cocos Code IDE中的地球圖標運行,就可以看到成果了哦。

 

4. 如何監聽瀏覽器窗口大小變化,橫豎屏   

當用戶拖拽來改變瀏覽器大小,或者更有用的情況,當他們轉動自己手機方向的時候。游戲中任意時刻都可以開啟這種行為,只需要調用cc.EGLView的resizeWithBrowserSize函數:

cc.EGLView.getInstance().resizeWithBrowserSize(true);

為了更靈活得應對變化,我們為cc.EGLView提供了一個新的函數,你可以通過setResizeCallback函數注冊一個回調函數來監聽瀏覽器窗口大小變化事件:

代碼如下:

cc.EGLView.getInstance().setResizeCallback(function() {
 // 做任何你所需要的游戲內容層面的適配操作
 // 比如說,你可以針對用戶的移動設備方向來決定所要應用的適配模式
// 比如說 獲取寬度和高度,如果寬度大於高度就是橫屏, 如果寬度小於高度就是豎屏});

 

5. 手機瀏覽器黑屏問題

使用Cocos2d-JS最新版本導致瀏覽器黑屏的同學,可以試試在以下解決方案:加一個viewport上去就行了。

 

6. LabelBMFont黑邊問題   

在 LabelBMFont的圖片字,純白色的粗體, 在h5上沒黑邊,在jsb下,iPhone上還有黑邊。解決方案:

1415693871269350.png

7. 瀏覽器中輸入文字解決方案

我們的游戲經常需要玩家輸入文字信息,而edit控件的輸入方式又不太好用,這里提供一個彈出框的解決方案(僅限在瀏覽器、微信中使用)

1415693993322940.png

createInput: function () {
var textField = new ccui.TextField();
            textField.setTouchEnabled(true);
            textField.fontName = "Marker Felt";
            textField.fontSize = 30;
            textField.x = widgetSize.width / 2.0;
            textField.y = widgetSize.height / 2.0;
            textField.addEventListenerTextField(this.textFieldEvent, this);
},

textFieldEvent: function (sender, type) {
        switch (type) {
            case ccui.TextField.EVENT_ATTACH_WITH_IME:
                var textField = sender;
                this._topDisplayLabel.setString("attach with IME");
                if (!cc.sys.isNative)
                {
                    var inputStr = window.prompt("請輸入:");
                    cc.log("你輸入的內容是:"+inputStr);
                }
                break;
}

 

8. cocos命令編譯Android平台,sdk版本錯誤解決方案

cocos compile -p android運行以后出現the android-platform should be equal larger than 10的解決方案:

1415694076715620.png

可以使用以下命令,解決此問題:cocos compile -p android --ap XX

--ap X 指定編譯版本。你電腦上的SDK有什么版本,就編譯什么版本。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM