2014-05-21 42 views
1

我知道,這個主題一直存在問題,但我無法讓我的StaticBody旋轉。下面是代碼,在那裏我試着將它旋轉:旋轉盒2靜態球體

BodyDef bDef = new BodyDef(); 
Body body; 

bDef.position.set(x, HEIGHT-y); 
bDef.type = BodyType.StaticBody; 
angle = 50; 
body = world.createBody(bDef); 
PolygonShape pShape = new PolygonShape(); 
pShape.setAsBox(width, height); 
FixtureDef fDef = new FixtureDef(); 
fDef.shape = pShape; 
body.createFixture(fDef); 

body.setTransform(body.getPosition(), (float) (angle*Math.PI/180)); 

打印出來的值與該行:

System.out.println(body.getTransform().getRotation()/(Math.PI/180)); 

返回:50.0000002530119,但框不旋轉。

回答

3

我不認爲你應該在靜態物體上使用setTransform。

您是否在創建正文後直接使用setTransform? 然後,您可以嘗試設置b2BodyDef上的角度。

bDef.angle = 50*Math.PI/180; 

否則,你可能會更好的運動機構。

此外,您可以通過setAsBox方法設置一個角度。

+0

是的,我已經試過這樣做,但它似乎並沒有工作。 – ViliX64

+0

是否將角度傳遞給setAsBox一個選項? –

+0

好吧,還有另一種方法,我必須定義中心和角度,所以它的工作。但我不確定我是否應該接受你的投資者,因爲解決方案是在你的評論中,而不是安妮。 – ViliX64

3

我想推薦你閱讀文檔,或者至少看看一些指南(例如good youtube channel)。

靜態物體不應該改變位置或角度。使用運動機構。

+0

這不起作用。 – ViliX64