如题:
动作结束后用callFunc再次run这个动作,会导致旧的动作不能正常停止?
start () {
this.move = cc.sequence(
cc.moveBy(0.5, 0, -10),
cc.callFunc(this.aftermove, this)
);
this.node.runAction(this.move);
},
aftermove () {
if(没有地板)
this.node.runAction(this.move);
},
我的本意是做一个hero按格子下落的效果,一次往下掉一个格,然后判断是否有地板,没有就再往下掉。
但是我发现它会越掉越快???
我怀疑是因为再callFunc的时候动作本身并没有停止,而下一次的动作有接着开始了,导致每帧位移的叠加?
另外,node再runAction的时候保存的是动作对象的引用还是它的克隆?
我感觉是引用,因为假如在一个动作a在运行的时候再次试图runAction(a),引擎会报错:动作已经在运行啦!
所以是不是因为有上述callFunc中再次启动动作自身的这个操作的存在,
导致引擎不能正确回收已经执行完的动作,又不会报“动作已经在运行”的错,
引发了同一动作叠加的奇怪bug?
另外,当真的碰到地板的时候,它是能正确停下来的。只不过最后落得很快而已。
以上。请教。