cc.WheelJoint 调用 frequency 会崩溃

  • Creator 版本:v2.1.2

  • 重现方式:调用WheelJoint 组件的frequency

  • 出现概率:必现
    近期打算研究下物理引擎相关的知识,发现WheelJoint在调用frequency的时候会直接崩溃,原因是box2d没有提供该函数,比对过c++版本发现存在另一个函数 SetSpringFrequencyHz,怀疑使用了错误的接口

使用下面代码测试,并没有复现你说的问题。

@property(cc.Label)
label: cc.Label = null;

@property(cc.WheelJoint)
joint: cc.WheelJoint = null;

@property
text: string = 'hello';

start () {
    // init logic
    this.label.string = this.text;
    this.joint.frequency = 10;
}

你放在Update中调用,不要放在start或者load中。

放哪里调用都一样,接口是不会变的,应该不是接口的问题。
你把build目录删除,重新构建看看,怀疑是你的代码版本不一致导致的。

不一样的,而且你这个引擎都没有初始化。内部判断的时候你相关的joint都没有生成,压根不可能有机会报错。WheelDemo.zip (837.9 KB)

看了下,正常情况下估计都不会有人发现这个问题,正常情况下没人会在启动后去修改这个值


这个图片的接口是我改过了的,原来的接口是 SetFrequency

这个是有问题,我们处理下,感谢反馈~