java - Box2D Android Studio 绘制倒置形状

标签 java android android-studio libgdx box2d

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

但是当我运行它时,它看起来像这样: Actual result

我尝试更改 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,而在于您用来绘制三角形的坐标。无论您以什么顺序将它们传递给 Fixture,它们都会生成如下三角形:

enter image description here

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

enter image description here

最后你的代码应该是这样的:

    ...

    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);

    ...

关于java - Box2D Android Studio 绘制倒置形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35617886/

相关文章:

java - 为什么hibernate执行alter query添加外键

java - 背压时 Intent 未清除, "on create"中的项目不断堆叠。安卓

android - 我怎样才能在android中打印对象列表

当用户未到达列表底部时,Android Paging 3 和 RemoteMediator 请求列表

安卓 : How to create a custom textview?

android - 发现多个文件的操作系统独立路径为 'org/apache/http/client/version.properties'

java - Android:无效的资源文件

java - 如何以线程安全的方式实现AWS S3客户端?

java - 如何仅使用数组列表的一部分填充 ListView

android - Android Studio ndk-build使用非零值2完成