cocos2d + box2d:向点旋转

时间:2010-10-08 21:57:50

标签: rotation cocos2d-iphone box2d-iphone

我正在尝试通过我的iPhone应用程序中的box2d的GetUserData()来旋转与cocos2d精灵相关联的box2d体。具体来说,我试图抓住最新的触摸位置并朝那个方向旋转我的box2d身体。

对于box2d,我相当缺乏经验,所以任何建议都会受到赞赏。下面是我如何想象我操纵玩家box2d身体的快速刺。我想澄清一下:

1)如果这是正确的做事方式。 2)我如何计算玩家和最后一个触摸位置之间的角度,以便在这个方向上旋转我的玩家。

- (void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    b2Body *pBody = self.playerBody;

    if(pBody != NULL) {
        for(UITouch *touch in touches) {
            CGPoint location = [touch locationInView: [touch view]];
            location = [[CCDirector sharedDirector] convertToGL: location];

            CCSprite *myActor = (CCSprite*)pBody->GetUserData();
            pBody->SetTransform(pBody->GetPosition(), angleToRotateByInRadians);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

获取两点之间的角度(以弧度表示):

atan2(pointOne.x - pointTwo.x, pointOne.y - pointTwo.y)