1. 程式人生 > >Cocos2d-JS開發常見問題彙總

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成功以後進入後臺

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函式:

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

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

程式碼如下:

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

5. 手機瀏覽器黑屏問題

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

6. LabelBMFont黑邊問題   

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

1415693871269350.png

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

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

1415693993322940.png

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 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有什麼版本,就編譯什麼版本。


源引:http://cn.cocos2d-x.org/tutorial/show?id=1862