У меня есть копье как спрайт. Его вращение определяется методом touchesMoved. всякий раз, когда пользователь скользит пальцем, он указывает на это прикосновение. Это мой метод:
- (void)ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch* touch = [touches anyObject];
CGPoint location = [touch locationInView: [touch view]];
float angleRadians = atanf((float)location.y / (float)location.x);
float angleDegrees = CC_RADIANS_TO_DEGREES(angleRadians);
spear.rotation = -1 * angleDegrees;
}
Это вроде работает, но только от 0 до 45 градусов. и это идет наоборот. Так как я двигаюсь от пальца снизу вверх, он вращается по часовой стрелке (он должен следовать направлению фингера и вращаться против часовой стрелки). С 45 по 90 он работает нормально (движется против часовой стрелки), но только если я запускаю касание в верхней диагонали экрана.
Что я делаю не так?
Спасибо