Я пытаюсь повернуть тело 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);
}
}
}