cocos2d + box2d: вращение к точке - PullRequest
       12

cocos2d + box2d: вращение к точке

0 голосов
/ 09 октября 2010

Я пытаюсь повернуть тело box2d, привязанное к спрайту cocos2d, с помощью GetUserData () box2d в моем приложении для iPhone. В частности, я пытаюсь захватить последнее местоположение касания и повернуть мое тело 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 голосов
/ 07 декабря 2010

Получите угол (в радианах) между двумя точками:

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