怎么制作一个跟随手指触摸移动的物体

creator里面的案例在触摸时候有抖动,效果不好。
而且触摸别的区域的时候,也会跑过去。不是想要的效果

楼主能弄一个 demo 项目上传过来,我看看为什么触摸的时候会抖动?

抖动是因为示例里获取的坐标有小数,所以会抖动,取整的话就不会抖动了

找到示例项目的代码,在touch_move的回调里加上

touchLoc.x = Math.floor(touchLoc.x);
touchLoc.y = Math.floor(touchLoc.y);

和update里加上这两句

newPos.x = Math.floor(newPos.x);
newPos.y = Math.floor(newPos.y);

就不会抖动了

范例那个抖动当时看的时候也想了一会儿。实际上我觉得这是一个数学上的问题。看一看direction那一行。如果位置不动,里面那个一减再标准化,这direction就不知道是多少了。
我自己改的思路是当新的点和旧的点相差小于多少的时候不更新位置

请教一下是哪方面的数学问题呢?:grin:

:sweat: 新的移动距离是通过speed*dt算出来的,这很难使newPos等于目前触摸这个点,会存在偏差。这样就会在一个方向上抖动。比如现在从左往右移动到目标点,方向是右,但是因为有偏差超过了目标点,这时候方向就变左了。所以就一直抖动。
那么假设,恰巧oldPos(也就是上一帧的newPos)等于目标点呢。cc.pSub(this.moveToPos, oldPos) = (0,0) 我是不知道(0,0)取Normalize会是什么啦,但是应该是有一个值的,这样又会继续产生抖动。