我在 AndEngine 中创建的应用程序中存在以下情况:由于引入的重力,带有附加 Box2D 主体的精灵出现并掉落到地面。第一个物体正确落到地上。第二个物体落在第一个物体上——没关系,但是如果我向右移动它,它不会掉到地上而是悬在空中。(我已经附加了触摸处理程序,以便我可以用手指移动对象)。基本上有时在碰撞后,第二个物体会在其底部获得一些不可见的边缘。任何人都发现了这种情况,可以给我一个提示吗?我只是调试它,所有对象都有我在开始时设置的夹具(密度 5 或 1 - 没关系,弹性 0,摩擦力 1)。
问问题
215 次
2 回答
1
我对这种情况有一些了解。首先,您必须按照以下方式创建物理世界。
mPhysicsWorld = new PhysicsWorld(new Vector2(0,SensorManager.GRAVITY_EARTH),false);
这里,在上面的例子中,最后一个参数是 allowSleep 值。您必须在其中传递 false 以便任何 box2d 实体都不会休眠。
还有另一种情况,如果你移动附着有精灵的身体,那么提供适当的速度来移动对象而不是执行身体的变换。
于 2013-06-24T16:24:53.173 回答
0
好,我知道了!身体在旋转,但我没有看到它,因为
PhysicsConnector(element, body, true, false)
(最后一个参数)。
这里的关键是设置恒定旋转(为 0):
body.setFixedRotation(true);
于 2013-06-24T18:59:45.517 回答