cocos creator wap模式下横竖屏动态适应

动态修改场景的canvas属性设置,需要两套布局节点坐标信息

    start() {
        this.updateCanvasSize();
        cc.view.setResizeCallback(() => {
            this.updateCanvasSize();
        })
    },

    // 自由切换横竖屏,动态设置设计分辨率和适配模式。
    updateCanvasSize() {
        let size = cc.view.getFrameSize();
        if (size.width > size.height) {
            this.canvas.fitWidth = false;
            this.canvas.fitHeight = true;
            this.canvas.designResolution = cc.size(1920, 1080);
            this.showLandscape();
        } else {
            this.canvas.fitWidth = true;
            this.canvas.fitHeight = false;
            this.canvas.designResolution = cc.size(1080, 1920);
            this.showPortait();
        }
    },

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);
}