我的程序有一个循环,可以计算和绘制每秒60次。我希望我的动作动作每秒只执行一次,我如何用objective-c方法做到这一点?
答案 0 :(得分: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的文档了解详情。
修改强>
您可能还想查看this answer。
答案 1 :(得分:2)
如果您使用Cocos2D for iphone,则不得使用NSTimer。
在documentation之后,您应该使用schedule:interval:
方法:
[self schedule: @selector(tick:) interval:1.0f];
- (void) tick: (ccTime) dt
{
//...
}
答案 2 :(得分:0)
如果你使用CCSprite,他们有一个可能有效的调度方法。 基本上为主循环做什么。 您也可以在主循环中保留一个自动收报机,并检查这是自动收报机%60 == 0。 然后调用你的动作。
我不鼓励用cocos2d here读NSTimer。