【官网正式版更新】Cocos Creator v2.0.0 社区版发布贴

升级没用一个月…只是升级2.0后 一直在2.0上做开发,当时觉得没啥大问题…昨天才发现native下性能很严重…
先谢谢大大…我们再商量下,是等还是重新来一次…

2.0 需要升级的 API 其实 1.x 绝大多数都是支持的

如果从对象池里取出一个节点,如果是先改变这个节点的图片,再添加到父节点,这时候图片渲染会有有问题,跟踪了一下代码,发现ccsprite.js里那个enabledInHierarchy此时为false,被return掉了@panda

老大,又来麻烦您了
之前想用定时器写一个0.02秒的,结果打印dt都是0.32,您说是因为精度不支持,dt的时间是下一帧的,就是0.16*2=0.32.
现在我在update里写的,自己算的时间。但是update在电脑的浏览器上和安卓手机上表现的差异有点大·········
截图黄色的是谷歌浏览器(我也不知道为啥是黄色的)调试的安卓设备(小米note3),白色的win的搜狗浏览器
代码如下:

任何运算时,h5大概1秒多打印一次,安卓得0.5秒就打印一次

加上逻辑运算时候,基本上算一次,dt就会变成0.04,运算代码如下

安卓界面上的表现就是··········物体运动不流畅··········

因为是lua代码打算用ccc重写,所以测试了下lua的,dt稳定的0.019·············
想知道,是我需要优化?还是什么原因··············

發佈 Web Mobile 時,如果勾選 MD5 Cache,使用 cc.loader.loadRes 後回應的 asset.nativeUrl 並不會帶上 MD5

基于什么考虑啊,这样跟之前不就不兼容了。如果是故意这么设计,我们就改代码了,影响大倒算不上,就怕改完再改回去。

刚新建了一个工程测试,就是template,h5和安卓也是打印了下,结果是一样的
安卓的大概0.4秒输出一次

我查一下

我不懂你为什么要打印 dt > 0.02 时的值,如果 dt 超过 0.02,甚至到 0.04,那意味着帧率非常不稳定,dt 变长是因为逻辑帧的执行时间过长,让 requestAnimationFrame 无法正常按照期望的时序回调,被延后了。你可能误解了,requestAnimationFrame 并不是一定能稳定按照 60 fps 来回调的,只有在逻辑帧占用时间小于 0.016ms 时,才有可能。

对,你要用 cc.loader.md5Pipe && cc.loader.md5Pipe.transformUrl(asset.nativeUrl)

如果 dt 超过 0.02,甚至到 0.04,那意味着帧率非常不稳定,我有一些数据是按照时间去算的,如果超过0.02s,会对游戏数据产生影响。所以我的需要一个稳定的定时器。之前的lua,能稳定在0.019s,满足需求了,而现在,自定义0.02秒的定时器不可以,用update也不可以··············我要怎么办 才能找一个稳定的定时器

兄弟,这个和语言没有关系

我想要一个稳定的0.02s的定时器,怎么办····

@Knox 我刚刚拿了新版测试,发现 x轴的大小是对了的正确了。
现在就是Y轴依然是错误的,我这次给你截图。
看到 蓝色那条线了么,比正常的图层还要多了一倍多出来,所以导致 地图的图层没有居中。
这是两张图,由于没有截全,所以实际上高出好多。

最后贴一个正常的, 注意Size:

我尝试了手动修改高度尺寸,修改后显示是正常的,但是之后会自动还原。

正式发布的时候,能在所有的cc.log,console.log 前面加个 1|| 么,虽然cc.log本身啥也不干了,但是cc.log的各个参数的运算还是要执行的吧。好多参数都是JSON.stringify()这种的,要消耗一定的CPU的,大量的字符串也占容量。加个 1|| 把整个函数短路掉,混淆代码的时候就能把整个被短路的代码都干掉了,既节省容量,也节省运算量。

基本就一个正则替换的事。
只要不要在cc.log的参数里放一些有实际功能的代码就不会有什么副作用了。做成个发布选项也好啊。望采纳。

JS 是单线程,我的意思是,你的逻辑性能差,这才导致不稳定。。。想稳定,先优化

你可以这样写

if (CC_DEBUG) {
    cc.log
}

if (CC_DEBUG) {
cc.log
}
最终效果是可以,就麻烦了点。能自动帮助完成就更好啦

那个··········我测试这些东西的时候,没有任何运算,而且我新建了一个工程测试,依然是不稳定
老大,我想要个0.02秒的定时器,要怎么弄···················

这两天要写文档,你可以单独发个帖子,带上 demo,看看论坛有没有人帮你看看

好,麻烦了

我实现了一个枚举类型的字体大小组件,代码如下

let FontSize = cc.Enum({
    VERY_SMALL : 10,
    SMALL:       15,
    NORMAL:      25,
    LARGE:       30,
    VERY_LARGE:  40,
    HUGE:        100,
});

cc.Class({
    extends: cc.Component,

    properties: {
        fontSize: {
            type:        FontSize,
            default:     FontSize.NORMAL,
            displayName: "Font size",
            tooltip:     "The label of font size",
        },
    },

    start () {
        var label = this.node.getComponent(cc.Label);
        if(label) {
            label.fontSize = this.fontSize;
            label.lineHeight = this.fontSize;
        }
    },
});

我把这个组件绑定到带cc.Label组件的节点上,在编辑器可以通过下拉框选择字体大小,但编辑器中的显示效果中,字的大小并没有改变。但我在浏览器中运行,字体大小正确地用了这个组件的字体大小。