繁体   English   中英

Box2D Android Studio绘制倒置形状

[英]Box2D Android Studio Drawing inverted shapes

我正在使用Android Studio和LibGDX创建一个碰撞测试游戏,我拥有游戏所需的一切,但是我想在Box2D中创建一个像这样的倒置三角形,显然,它看起来不会像这样图片是给你一个例子 我对Box2D的目标示例

但是,当我运行它时,它看起来像这样: 实际结果

我尝试过更改Box2D中代码的顺序,但它不会创建倒三角形,如下所示:

private Fixture createcollisionFixture(Body collisionBody) {
        Vector2[] vertices = new Vector2[3];
        vertices[0] = new Vector2(-0.5f, -0.5f);
        vertices[1] = new Vector2(0.5f, -0.5f);
        vertices[2] = new Vector2(0, 0.5f);
        PolygonShape shape = new PolygonShape();
        shape.set(vertices);
        Fixture fix = collisionBodyBody.createFixture(shape, 1);
        shape.dispose();
        return fix;
    }

我将其更改为:

private Fixture createcollision2Fixture(Body collision2Body) {
        Vector2[] vertices = new Vector2[3];
        vertices[2] = new Vector2(0, 0.5f);
        vertices[1] = new Vector2(0.5f, -0.5f);
        vertices[0] = new Vector2(-0.5f, -0.5f);
        PolygonShape shape = new PolygonShape();
        shape.set(vertices);
        Fixture fix = collision2Body.createFixture(shape, 1);
        shape.dispose();
        return fix;

    }

但是它一直作为第二张图片加载,而不是像倒三角形一样,该如何解决? 帮助将不胜感激。

问题不在于Box2D中,而在于您用来绘制三角形的坐标中 不管您以什么顺序将它们传递到灯具,它们都会产生这样的三角形:

在此处输入图片说明

如果要旋转三角形,则必须传递另一组坐标,如下所示:

在此处输入图片说明

因此,最终您的代码应如下所示:

    ...

    Vector2[] vertices = new Vector2[3];
    vertices[2] = new Vector2(-0.5, 0.5f);
    vertices[1] = new Vector2(0.5f, 0.5f);
    vertices[0] = new Vector2(0.5f, -0.5f);

    ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM