关于物体移动的一些疑问,求大神

if((this.node.x===this.bx)&&(this.node.y===this.by))
{
console.log(‘whiteball stop’);
}

this.bx是物体移动的位置,我想让如果物体停止移动了,我就输出下面的语句,已添加物体移动的语句,可是为什么把这个判断语句放到update里面,物体到达了this.bx this.by,却不会输出我要输出的语句

我在update 里面不断输出this. node.x和this.bx,到了停止移动的时候,这两个值是一样的

浮点数不要用===来比较,试一下

(Math.abs(this.node.x-this.bx)<0.01) && (Math.abs(this.node.y-this.by)<0.01)

这个0.01视误差大小适当放大或减小一些。

取整了吗?

1赞

我试下

我取整了以后还是不输出

原来的不取整的时候,运行大概10次只有一次是会输出的

试一下

if ((Math.abs(this.node.x-this.bx)<0.01) && (Math.abs(this.node.y-this.by)<0.01)) {
    console.log("whiteball stop");
} else {
    console.log(Math.abs(this.node.x-this.bx), Math.abs(this.node.y-this.by));
}

看看误差有多少

我这样是没有问题的,不知道你的代码怎么写的

另外如果你想物品停止移动了做什么事情,应该用cc.callFunc

1赞

恩恩,谢谢~~!感激不尽