我尝试使用float参数调用方法,但方法获取的值不是我发送的。将参数传递给方法的问题
下面是呼叫(实际呼叫是最后一行的最后一部分,[孩子setFaceDirection:direcao]):代码
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];
下面是该方法的代码:
-(void) setFaceDirection: (float) angle {
NSLog(@"Value Recieved: %f", angle);
[theSprite setRotation: - angle ];
}
这里是浮点变量direcao
@interface PersControlNode : CCNode <CCTargetedTouchDelegate> {
// ...
float direcao;
// ...
}
// ...
@end
这里的声明是从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
我在做什么错?我是Objective C的新手。感谢任何想尝试帮助的人。
PS。如果我使用int而不是float,它会更好,但即使如此,仍然存在一些错误。
它工作得更好,如果该参数是int类型的......但即使是这样,它不是完美的 – Jose 2010-07-19 15:15:53