• 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有什么版本,就编译什么版本。

  • 相关阅读:
    [LeetCode] 582. Kill Process
    [LeetCode] 686. Repeated String Match
    [LeetCode] 341. Flatten Nested List Iterator
    [LeetCode] 404. Sum of Left Leaves
    [LeetCode] 366. Find Leaves of Binary Tree
    [LeetCode] 1485. Clone Binary Tree With Random Pointer
    [LeetCode] 459. Repeated Substring Pattern
    [LeetCode] 565. Array Nesting
    [LeetCode] 679. 24 Game
    [LeetCode] 364. Nested List Weight Sum II
  • 原文地址:https://www.cnblogs.com/mokey/p/4215989.html
Copyright © 2020-2023  润新知