2017-06-01 51 views
0


林與Box2D的工作LibGDX,和我與機構和碰撞等工作..
HERE,我有一個身體與另一個發生碰撞,問題時,不應該去做。
現在知道我需要使用ChainShapes之後,我開始了。
每當ü運行我的項目,我得到一個斷言錯誤:
Box2D的ChainShape VertexCount = 0

Assertion failed: (count >= 2), function CreateChain, file /Users/tom/Coding/slave/workspace/libgdx-mac/extensions/gdx-box2d/gdx-box2d/jni/Box2D/Collision/Shapes/b2ChainShape.cpp, line 62.


所以我想一個小的調試打印頂點數,以及頂點出印刷爲0
問題是,我加入的頂點,他們不出現添加...
代碼添加verticies:

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,這就是爲什麼我得到的錯誤,我不知道如何解決它,所以請幫助:)

+0

這會有幫助嗎? (未測試)https://stackoverflow.com/questions/35381381/chainshape-in​​-box2d/35668026 – javaLover

+0

@javaLover我試過了,我仍然實現相同的錯誤,我實際上搜查了很多,但沒有發現任何有用的東西,這就是爲什麼我在這裏發佈 – Liwaa

+0

@Liwaa這些變量'posx','posy','size','PPM'的值和類型是什麼? – Aryan

回答

1

以這種方式創建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 

如果仍你有問題,檢查值posx,posy,size,PPM

+1

Dude,謝謝!這工作完美:) – Liwaa