发现一个导致Sequence最后一个子动作无法停止的bug

问题产生的原因是这样的:
1.诸如MoveBy这种直接继承于ActionInterval的动作类,很多都没有重写isDone方法,而这些子类的_done成员变量只有在step方法最后才会置true
2.Sequence在update方法中对最后一个子动作的处理是如果其isDone返回false就一直调用其update

上面2条导致了没有重写isDone的子类如果是Sequence的最后一个子动作,就会出现一直调用update(1)而不会停止的情况。发现这个问题是源于我在一个Sequence动作的最后一个动作用了ActionFloat,而它一直在被调用。我看了下github的改动历史,这个问题应该是一直存在的。还望引擎组尽快修复下。@minggo

同遇到这个问题

人工置顶一下

继续人工置顶

github上有代码好像修复这个问题 如果有问题的话 不过代码变得有蛮多不一样

没有,我看过了,CCActionInterval.cpp的最后一次改动是3年前

我昨天才看源代码 有更新的

嗯,果然是我看错了,我再去看看改动

看了下,bug应该还是在的

Sequence确实是还有问题,ActionInterval和ActionInstant各种混合使用的情况下会出问题。我之前尝试在3.16修复,但是还是没有解决,所以还是会留在3.16版本之后解决。

在一些机器上存在callfunc无法执行的情况,我也遇到了