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成功以后進入后台
選擇需要創建的廣告類型之后,點擊生成廣告代碼
生成成功后,后台如下圖所示
將廣告代碼貼到index.html下。即可完成廣告添加
添加成功后如下圖所示
最后, 關於廣告位置問題,可以根據html格式在index.html進行調整。
tips:如果需要接入百度移動聯盟,騰訊廣告等,也是同樣的做法。
3. 如何在Code IDE中運行js-test, 如何運行cocos命令行創建的項目
1)在Cocos Code IDE中新建一個cocos js項目,就叫CocosJsGameSampleTest吧。
2)注意在新建的時候需要選中Create From Exising Resource
如下圖所示:
然后點擊確定生成項目。
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上還有黑邊。解決方案:
7. 瀏覽器中輸入文字解決方案
我們的游戲經常需要玩家輸入文字信息,而edit控件的輸入方式又不太好用,這里提供一個彈出框的解決方案(僅限在瀏覽器、微信中使用)
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的解決方案:
可以使用以下命令,解決此問題:cocos compile -p android --ap XX
--ap X 指定編譯版本。你電腦上的SDK有什么版本,就編譯什么版本。