Quick-Cocos2dx-Community 3.7.7 Beta

新增

  • FastTMXLayer 支持设置透明度和颜色。
  • WebView同步最新实现,新增cleanCachedData,setOpacityWebView,setBackgroundTransparent方法。
  • Android增加对虚拟按键隐藏的支持。
  • audio添加playBGMSync,playEffectSync接口,但依然推荐在loading场景先预加载所有音频。
  • cc.FileUtils新增绑定getFileDataFromZip和unzipFile
  • Luasocket添加socket.dns.isIpv6()接口,以异步方式判断网络类型,同步优化SimpleTCP,解决可能柱塞UI的问题。
  • display中新加FIXED_AUTO分辨率适配模式,自动选择 FIXED_WIDTH 或 FIXED_HEIGHT。

阅读全文»

iOS 12国行的特供联网提示框不弹出

非常蛋痛,必须请求带域名的http才能触发,直接ip地址不一定触发。

需要无脑请求一次带域名的网络。

local request = network.createHTTPRequest(function(event)
end, "http://cocos2d-lua.org", "GET")
request:start()

Quick-Cocos2dx-Community 3.7.6 Beta

测试稳定后将正式发布到 http://www.cocos2d-lua.org

3.7.6 Beta 主要改进:

  • Android arm64 支持。
  • 龙骨支持。

改进

  1. Windows 添加 Luajit 64 执行程序,可以在 Windows 上打包 luajit 的64位 bytecode 了。
  2. Android arm64-v8a 发布支持,适应 Google Play 9月政策。
  3. cc.pGetAngle() 实现优化。
  4. retain the sprite frame, do not removed by SpriteFrameCache::removeUnusedSpriteFrames。
  5. 龙骨集成。
  6. [luaoc] add conversion lua table to ObjC Dictionary
  7. [luaj]s1.Add missing default cases; 2. fix the return value to nil instead of empty string when java return null.

阅读全文»

csb dump

查看节点信息。

local function dumpNode(node, deep)
    print("== deep:", deep)
    print("== parent:", node:getName(), tolua.type(node))
    print("== child ==")
    for _, child in ipairs(node:getChildren()) do
        print(child:getName(), tolua.type(child))
        dumpNode(child, deep + 1)
    end
    print("== child end ==")
end

闪白 shader

分别在r、b、g向量上叠加一个0~1之间的值。

#ifdef GL_ES
precision mediump float;
varying mediump vec2 v_texCoord;
#else
varying vec2 v_texCoord;
#endif

void main()
{
    vec4 c = texture2D(CC_Texture0, v_texCoord);
    if (c.a <= 0.0) {
        discard;
    }
    float param = 0.2;
    gl_FragColor = vec4(c.r + param, c.g + param, c.b + param, c.a);
}

cocos creator 加载二进制

注意微信上必须是bin后缀的,才能以二进制模式读取文件。

微信返回的是 ArrayBuffer, chrome返回的是Uint8Array。

var url = cc.url.raw("resources/bin/data.bin");
cc.loader.load({ url: url, type: "binary", }, function (err, data) {
    if (data instanceof ArrayBuffer){
        data = new Uint8Array(data);
    }
    console.log("err ===", err);
    console.log("data ===", data.length);
});