Cocos2d-JS开发常见问题汇总

来源:互联网 发布:windows phone官网 编辑:程序博客网 时间:2024/04/29 18:06

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

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

0 0
原创粉丝点击