簡體   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