Iphone Box2D游戏中身体以特定角度投掷的问题

Iphone Box2D游戏中身体以特定角度投掷的问题,iphone,box2d,box2d-iphone,Iphone,Box2d,Box2d Iphone,在我的游戏中,我有一个Ccsprite代表箭,一个b2body代表球。。。我试着把球扔向我的箭精灵所指的方向。这是我的密码。。。我在计算箭头精灵的旋转,然后在那个角度对球施加脉冲 float totalRotation = arrow.rotation ; ballBody->ApplyLinearImpulse(b2Vec2(10.0f+cos(totalRotation)*25.0f,10.0f+sin(totalRotation)*25.0f), eggBody->GetWo

在我的游戏中,我有一个Ccsprite代表箭,一个b2body代表球。。。我试着把球扔向我的箭精灵所指的方向。这是我的密码。。。我在计算箭头精灵的旋转,然后在那个角度对球施加脉冲

float totalRotation = arrow.rotation ;

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

但是,这并不完全有效……球被抛向了不正确的方向。

CCNode(以及继承自CCNode的CCSprite)的
旋转属性以度为单位,顺时针旋转为正。Box2D世界使用以弧度测量的角度,逆时针旋转为正,这对于笛卡尔坐标系更为传统。为了为Box2D功能提供正确的角度,必须进行转换。在Cocos2D中,转换如下:

浮动角度=-1*CC_度到_弧度(总旋转)

宏将totalRotation从度转换为弧度,然后乘以-1,因为Box2D在逆时针方向上测量正角度,这与CCNode旋转相反。

可能与: