2013-01-21 36 views
0

在我的遊戲中,我有一個Ccsprite的箭頭和一個b2body的球......我試圖在我的箭頭精靈指出的方向擲球。這裏是我的代碼...我指望箭頭精靈的旋轉,然後在該角度將衝球...在Box2D遊戲中以特定角度拋出b2body的問題

float totalRotation = arrow.rotation ; 

ballBody->ApplyLinearImpulse(b2Vec2(10.0f+cos(totalRotation)*25.0f,10.0f+sin(totalRotation)*25.0f), eggBody->GetWorldCenter()); 

,但是,這不正是工作...球是越來越扔在不適當的方向。

+0

也許相關:http://stackoverflow.com/questions/9164146/simple-gun-in-cocos2dbox2d-game – iforce2d

回答

0

CCNode(和CCSprite,它繼承自CCNode)的rotation屬性以度爲單位進行度量,順時針旋轉爲正。 Box2D世界使用以弧度測量的角度,逆時針旋轉爲正,這對於笛卡爾座標系更傳統。爲了向Box2D功能提供正確的角度,您必須進行轉換。在cocos2d,轉換是這樣的:

float angle = - 1 * CC_DEGREES_TO_RADIANS(totalRotation);

宏將從度弧度totalRotation,你由-1,因爲Box2D的措施正角度在反時針方向,這是相對乘CCNode旋轉。