想实现一个物理匀速运动,水平或者垂直方向的运动。当碰到其它刚体,会产生跟Dynamic一样的效果。现在有一个问题,使用Dynamic,重力设为0,可以实现匀速运动。但是与其它的物体碰撞之后,不会产生重力的效果。设置为Kinematic,可以实现匀速,但不会有Dynamic的效果。求教下,这样子的效果该怎么实现
给物体一个冲量
请问是给一个向上的力吗?
这个方法有试过,但是这个力貌似是一次性的。有试过给直接给物体一个远大于重力的力。一个向上的力让物体直接向上飞,但是只飞了一会就又往下掉了,无法跟重力保持平衡
moveTo
你是想用碰撞但是不想要用重力?
碰撞之前保持匀速直线运动,碰撞之后会有类似于受到重力往下掉的效果
不能动态设置重力?
我的建议是 首先吧物体的刚体设置为静态,然后用move移动,当碰撞以后,再将物体设置为动态的。
我一开始以为他不用重力就建议他用moveTo
这方法也试过了,但是多个物体叠加起来的时候这个方法就不管用了
多个物体叠加在一起移动就不管用了
怎么叠加?多个物体在一块的话可以加上我上述的代码:
可忽略接触但不碰撞的事件
if (contact.getImpulse().normalImpulses[0] > 0){
// todo
}else{
contact.disabledOnce = true;
}
不管用,力也还是暂时的。飞了一下就又往下掉了
我说的叠加是指物体类似搭积木摆在一块。还有,刚才试了下contact.getImpulse() 这个值返回null啊
那就用这个方法就行了。
你报错的话就检查下是不是监听的onPostSolve,按照我的代码来应该没问题的
谢谢了,问题解决了


