簡體   English   中英

Box2D ChainShape VertexCount = 0

[英]Box2D ChainShape VertexCount=0


我正在LibGDX上使用Box2D,並且正在處理物體和碰撞等。
在這里 ,我有一個身體與另一個碰撞的問題,這是它不應該這樣做的。
現在,在知道我需要使用ChainShapes之后,我就開始了。
每當您運行我的項目時,都會收到斷言錯誤:

斷言失敗:(計數> = 2),函數CreateChain,文件/Users/tom/Coding/slave/workspace/libgdx-mac/extensions/gdx-box2d/gdx-box2d/jni/Box2D/Collision/Shapes/b2ChainShape.cpp ,第62行。


所以我嘗試了一個小的調試來打印頂點計數,並將頂點打印為0。
問題是我正在添加頂點,但它們似乎沒有被添加...
添加折點的代碼:

    chain = new ChainShape();
    chain.setNextVertex(new Vector2((posx - size) / PPM, (posy + size) / PPM));
    chain.setNextVertex(new Vector2((posx + size) / PPM, (posy + size) / PPM));
    chain.setNextVertex(new Vector2((posx + size) / PPM, (posy - size) / PPM));
    chain.setNextVertex(new Vector2((posx - size) / PPM, (posy - size) / PPM));
    System.out.println(chain.getVertexCount());


頂點數打印為0,這就是為什么我遇到錯誤,我不知道如何解決它,所以請幫忙:)

通過這種方式創建ChainShape

ChainShape chain=new ChainShape();

Vector2 vector[]=new Vector2[4];
vector[0]=new Vector2((posx - size) / PPM, (posy + size) / PPM);
vector[1]=new Vector2((posx + size) / PPM, (posy + size) / PPM);
vector[2]=new Vector2((posx + size) / PPM, (posy - size) / PPM);
vector[3]=new Vector2((posx - size) / PPM, (posy - size) / PPM);

chain.createChain(vector);

System.out.println(chain.getVertexCount());  // 4 on console

如果仍然是您的問題,檢查的價值posxposysizePPM

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM