【问题标题】:Objects pass through each other物体相互穿过
【发布时间】:2017-08-21 08:25:10
【问题描述】:

我有两个对象,一个是静态的,另一个是动态的。他们两个的装置都是从ChainShape 创建的。问题是它们相互穿过。

截图:

【问题讨论】:

    标签: libgdx box2d


    【解决方案1】:

    两个 ChainShape 不会相互碰撞,使其中一个成为 PolygonShape。 这对我有用:

    BodyDef triangleDef = new BodyDef();
    triangleDef.type = BodyDef.BodyType.DynamicBody;
    triangleDef.position.set( 0, 0 );
    Body triangleBody = this.world.createBody( triangleDef );
    PolygonShape triangleShape = new PolygonShape();
    triangleShape.set( new float[]{ 0, 0.5f, -0.5f, -0.5f, 0.5f, -0.5f } );
    triangleBody.createFixture( triangleShape, 1 );
    triangleShape.dispose();
    
    BodyDef groundDef = new BodyDef();
    triangleDef.position.set( 0, 0 );
    Body groundBody = this.world.createBody( groundDef );
    ChainShape groundShape = new ChainShape();
    groundShape.createLoop( new float[]{ -10, 10, -10, -10, 10, -10, 10, 10 } );
    groundBody.createFixture( groundShape, 1 );
    groundShape.dispose();
    

    【讨论】:

    • 两个物体都有超过 8 个顶点,所以我不能使用多边形。您还有其他想法吗?
    • 您可以将形状拆分为多个多边形并将它们全部添加到同一个主体中。
    • 知道了。感谢您的回答
    猜你喜欢
    • 1970-01-01
    • 2018-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多