cc.moveTo 动作无法 reverse()

这个动作 reverse()方法 是不是有bug

/* 动作放大却可以回去 */
// let skeleton= this.node.getChildByName(‘skeleton’)
// let MoveAction = cc.scaleBy(1, 1.7)
// let BackAction = MoveAction.reverse()
// skeleton.runAction(cc.sequence(MoveAction, cc.delayTime(2), BackAction))

/* 动作移动却回去不去 */

// let skeleton= this.node.getChildByName(‘skeleton’)
// let MoveAction = cc.moveTo(1, cc.v2(0,0))
// let BackAction = MoveAction.reverse()
// skeleton.runAction(cc.sequence(MoveAction, cc.delayTime(2), BackAction))

MoveBy 应该可以 你可以先抽自己一巴掌

一般reverse都是针对by的动作的。
另外你语气不太好。。

那么官方为什么不说 只能moveBy ??? 一个api 没有提示 一个文档没有提示 让刚刚接触的这个api 的人 怎么知道

帖子自己删除吧 看着就恶心

moveTo到一个位置 你让人家怎么回去???

只能说楼主太小白

啪!啪!啪!

我觉得楼主没毛病,

TS下,cc.moveTo出来的Obj是有reverse这个方法的,官方又没有特殊说明,谁知道不能用。

move也应该有reverse啊 好像TweenLite那个就可以吧

我帮你把标题改了一下,看着不那么刺眼。然后通知引擎组的同事了。

首先是这样反直觉的设计的确是有问题,
其次如果真的是设计如此,那么文档中应该强调写明了。等引擎组的同事过来回复了。
最后,如果真的不能 reverse(),那么其实最好是在编译或运行阶段有个出错提示。

reverse在引擎中一贯就是反向的意思。
moveto不能使用reverse,也是从2dx一贯留下来的传统,creator脱胎于2dx,同时动作系统也算是2dx我们比较完善的部分了,因此没有对api做太多的改动。
可能正因为如此,所以在文档以及代码提示中忽略了这方面的说明。
这个接下来我们会补齐。

至于为什么moveto等acton无法使用reverse,而只有带by的可以使用。一个是刚刚说的历史原因,另一个请做这样的假设,moveto可以使用reverse。那么问题来了
一个node的坐标未(10,0),执行moveto(cc.v2(100,0))的reverse。
那这个reverse是会让node移动到(-100,0)还是让node从(100,0)移动到(10,0)?
这是一个问题。

另外,这样的效果与编辑器中的reverse也形成了两种不同的效果,不一致
这就好比你在动作系统中的moveto和动画编辑器中的moveto是两种效果一样,都是被喷的效果。

同时我们也发现这样的设计(moveto不能使用reverse)符合大部分用户的使用、逻辑习惯。
因此moveto等action无法使用reverse方法
希望你能理解

5赞