J'ai une lance comme sprite. La rotation est décidée par la méthode touchesMoved. chaque fois que l'utilisateur glisse son doigt, il pointe vers ce contact. C'est ma méthode:Cocos2d rotation sur les touches déplacé problème
- (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;
}
Ce genre fonctionne, mais seulement de 0 à 45 degrés. et ça va en face. Alors que je me déplace d'un doigt de bas en haut, il tourne dans le sens des aiguilles d'une montre (il devrait suivre la direction de fnger et tourner dans le sens inverse des aiguilles d'une montre). De 45 à 90, ça marche bien (se déplace contre le clic) mais seulement si je commence le toucher en diagonale supérieure de l'écran.
Qu'est-ce que je fais de mal? Remerciements
Et que voulez-vous dire par diagonale supérieure? – lins314159