moveTo这个动作,经常移动超过给定的点,这是个BUG

下边的人物 用的是moveTo这个动作,从右侧屏幕外 移动到和上边人物X坐标相同的点,但经常跑过一些, moveTo的最后一帧不应该有坐标校验吗? 大佬给看看是否是源码上没有校验啊!

@引擎组大佬

moveTo实际也是转成moveBy的,你试试两个moveTo就会移到别的位置去了,所以moveTo的过程中你要是修改位置,是会影响最后到达的位置的

那这个就铁定是个BUG了!
@引擎组
不能这么实现啊!

这个不是从2dx时代就一直是这样的么

这么设计的话 moveTo 太让人误解了,
可以去掉了! 仅留 moveBy 不就可以了!

确实有moveBy就够了,moveTo有时候使用的时候更方便一点而已

这个不误解吧?你要让物体运动到A点,同时又要让物体运动到另一个点B点,这逻辑本身就有问题吧?这里在发出运动到B点命令的时候应该先停止运动到A点的运动

正解,同一个物体在开始新的action前,最好清理掉未完成的action才能保证后续的action正确执行。

仅有一个动作

再说一个案例
开局,也就是场景刚刚创建
8个人物跑进场
for(let i=0; i<8;i++ ){
p[i].node.ranAction( moveTo(pos.x,pos.y) );
}

多个人,每个人只有一个 移动动作!
这样也是跑不准确的,经常跑过头!

要不用tween试试,哈哈

看到你这么说我还挺迷惑的,特地测试了下,2.4.3版本,并没有你说的问题啊
image

2.4.2版本前来报到


火朱大佬,gif图咋弄的,用的啥工具?

叫GifCam,小型免费,不过帧率不行

感谢,可以用就行了,哈哈

简单测试应该没什么问题,我的也不是百分百复现
是概率出现,估计是加载时,比较卡的时候 会出现

能移动超过给定点,一般都是 runAction 的时候,就存在了移动的 action ,每次移动之前先 stopAllaction。

正常逻辑执行新的moveto时要先停止之前的动作,记得有个宏也可以控制动作是否叠加,不过没用过。

1赞