J'essaie d'appeler une méthode avec un paramètre float mais la valeur obtenue par la méthode n'est pas celle que j'ai envoyée.Problème de transmission des paramètres aux méthodes
Voici le code pour l'appel (l'appel réel est la dernière partie de la dernière ligne, [setFaceDirection des enfants: Direção];):
direcao = dirRadianos * 180/M_PI; // direcao = The value I send
NSLog(@"Value Sent: %f", direcao); // Log what I'm sending
for (CCNode *child in super.children) if([child respondsToSelector: @selector(setFaceDirection:)]) [child setFaceDirection: direcao];
Voici le code pour la méthode:
-(void) setFaceDirection: (float) angle {
NSLog(@"Value Recieved: %f", angle);
[theSprite setRotation: - angle ];
}
Voici la déclaration de la variable flottante Direção
@interface PersControlNode : CCNode <CCTargetedTouchDelegate> {
// ...
float direcao;
// ...
}
// ...
@end
Voici la sortie de NSLog:
Value Sent: -16.699266
Value Recieved: 0.000000
Value Sent: -16.699301
Value Recieved: 36893488147419103232.000000
Value Sent: -16.699625
Value Recieved: -0.000000
Value Sent: 48.366463
Value Recieved: 2.000000
Value Sent: 48.366451
Value Recieved: -36893488147419103232.000000
Value Sent: 48.366428
Value Recieved: 0.000000
Value Sent: 48.366444
Value Recieved: -0.000000
Value Sent: 14.036244
Value Recieved: -0.000000
Value Sent: 14.036238
Value Recieved: -2.000000
Value Sent: 14.036201
Value Recieved: -36893488147419103232.000000
Value Sent: 14.036191
Value Recieved: -0.000000
Value Sent: 14.036273
Value Recieved: 36893488147419103232.000000
Value Sent: 12.528809
Value Recieved: 0.000000
Value Sent: 12.528766
Value Recieved: 36893488147419103232.000000
Value Sent: 12.528852
Value Recieved: -2.000000
Value Sent: 12.528863
Value Recieved: 0.000000
Value Sent: -101.309929
Value Recieved: -36893488147419103232.000000
Value Sent: -101.309860
Value Recieved: -2.000000
Qu'est-ce que je fais mal? Je suis nouveau à l'objectif C. Merci à tous ceux qui essaient d'aider.
PS. Cela fonctionne mieux si j'utilise int au lieu de float, mais même alors, il y a encore quelques erreurs.
Il fonctionne mieux si le paramètre est de type int ... mais même alors, ne est pas parfait – Jose