求教一个 cc.Node.EventType.TOUCH_MOVE 的问题

想实现一个按住屏幕中的一个 Sprite,然后在屏幕中拖动时,Sprite 会跟随手指移动的功能。
以下代码似乎不对。请大佬指教。。。


this.node.parent.comvertTouchToNodeSpaceAR

你上面的那种写法触点不在Sprite的锚点时,会出现一下跳动
下面这个是平滑的跟随移动
this.node.position = this.node.position.add(event.getDelta());

感谢回复!

我后来网上查到一个帖子参考了一下,这样写的。

            var delta = touch.getDelta();

            this.node.x += delta.x;
            this.node.y += delta.y;

没有用到坐标转换,感觉跟 Cocos_zjl 说的方法相同。。。
这个坐标转换总是感觉晕晕的。。。

坐标转换晕晕的,可能是你对坐标系的理解不是很清楚
理解坐标系就是一个原点找原点的过程
坐标就是相对于某坐标系原点的位置
关于世界坐标和本地坐标,你只需理解两个

1 给你一个node求这个node的锚点的世界坐标
let world_position = node.convertToWorldSpaceAR(cc.v2());

2 给你一个世界坐标 把某个node摆好
node.position = node.parent.convertToNodeSpaceAR(world_position);

这就再没有你能弄错的坐标了

2赞

这个总结很实用,非常感谢!!!