我让一个物体移动,然后这个物体静止了后,调用一个函数,关键是我要怎么判断这个物体静止了(而且这个静止不包括刚开始我还没让它动的时候)。这个物体我加了刚体组件的!求大神提点一下!!!拜托~
cc.sequence(你的action, cc.callFunc(function(){//运动完了回调}));
1赞
可以判断它的速度是否为0啊
加了刚体怎么获取物体的速度呢
运动不单是用了action,我还加了刚体,如果物体碰到了其他刚体,反弹那些无法预计,所以我只要知道是什么时候静止,有没有思路呢
或者说怎么获取刚体的速度,因为我尝试过获取刚体的线性速度,但一直都为0
update函数可以根据上一帧的位置和当前帧的位置获得在这一帧内的平均速度,因为时间差比较小,可以近似是当前帧的(瞬时)速度;
同理,可以根据上一帧的速度和当前帧的速度获得在这一帧内的平均速度,近似得到这一帧的加速度。
一般来说,要是连续好几帧这个物体的速度和加速度都近似为0的话这个物体就禁止了。
后来我想了一下,好像只要判断连续几帧这个物体的速度为0,他应该就算静止了吧。
getLinearVelocityFromWorldPoint 获取刚体上指定点的线性速度
楼主找到好的解决方法了吗
this._sleep =true;//(开始设置true,运动时设置false)
this.node.getComponent(cc.RigidBody).awake ///这是钢体 静止是返回值是false,运动时是true
if (!this.node.getComponent(cc.RigidBody).awake===true&&!this._sleep) {
//配合两个判断条件,意思是必须在物体运动状态this._sleep=false取反判断,
和运动刚好结束this.node.getComponent(cc.RigidBody).awake
返回值是false取反就是true。就刚好满足这个条件了,物体从运动到停止
}
4赞
let rigidBody = item.getComponent(cc.RigidBody)
cc.log(“item is awake ===>”, rigidBody.awake)
获取刚体的awake试试?