我的程序有一个循环,每秒进行 60 次计算和绘图。我希望我的运动动作每秒只执行一次,我该如何使用objective-c方法来做到这一点?
问问题
1721 次
3 回答
3
您可以使用
+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)seconds target:(id)target selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)repeats
一秒钟:
NSTimer *yourTastTimer = scheduledTimerWithTimeInterval:1 target:yourTarget selector:@selector(yourMethod) userInfo:nil repeats:YES;
您可以查看NSTimer的文档以获取详细信息。
编辑
您可能还想检查这个答案。
于 2012-08-07T09:55:52.740 回答
2
如果您使用 Cocos2D for iphone,则不得使用 NSTimer。
按照文档,您应该使用这样的schedule:interval:
方法:
[self schedule: @selector(tick:) interval:1.0f];
- (void) tick: (ccTime) dt
{
//...
}
于 2012-08-07T12:18:58.560 回答
0
如果您使用 CCSprite,他们有一个可以解决问题的 schedule 方法。基本上为主循环做什么。您还可以在主循环中保留一个代码,并检查这是代码%60==0。然后调用你的移动动作。
我在这里读到 NSTimer 不鼓励使用 cocos2d 。
于 2012-08-07T10:04:10.697 回答