我非常喜欢使用libgdx,它让我感到非常愉悦。但是,由于我对box2d很陌生,因此希望有比我更聪明的人能够帮助我。
我有一个简单的测试屏幕,其中一堆静态正方形瓷砖组成了地面,而一个动态物体(一个圆)则在周围反弹。
我想做的是增加地面的摩擦力,以便球不会滚动得那么多。就像地面是草而不是木头一样。
我在网上找到了一些东西,但似乎都不起作用。我尝试过最有前途的是这个:
我有一个简单的测试屏幕,其中一堆静态正方形瓷砖组成了地面,而一个动态物体(一个圆)则在周围反弹。
我想做的是增加地面的摩擦力,以便球不会滚动得那么多。就像地面是草而不是木头一样。
我在网上找到了一些东西,但似乎都不起作用。我尝试过最有前途的是这个:
tileBody.getFixtureList().get(0).setFriction(0.9f);
尽管看起来什么都没有发生。
阅读box2d文档建议我在最初定义对象时在fixture def上设置摩擦力:
FixtureDef fdef = new FixtureDef();
fdef.shape = wallshape;
fdef.density = 1.0f;
fdef.friction = 0.9f;
然而,这似乎也无法完全阻止球的滚动。
有没有更好的方法?我可以减少恢复系数,但这只会减少弹跳的程度,对吧?