如何为cocos2d创建倒计时器?

Md *_*din 20 iphone objective-c cocos2d-iphone

我正在使用cocos2d开发2D iPhone游戏.我需要一个倒数计时器.如何在cocos2d中创建倒计时器?

小智 49

没有足够的代表来支持汤姆,但他是绝对正确的.在这个问题的背景下,NSTimer是错误的解决方案.Cocos2d框架提供了一个与其他游戏功能集成的调度程序,如Pause/Resume(最常见的是使用NSTimer).

以上链接示例:

-(id) init
{
    if( ! [super init] )
        return nil;

    // schedule timer
    [self schedule: @selector(tick:)];
    [self schedule: @selector(tick2:) interval:0.5];

    return self;
}

-(void) tick: (CCTime) dt
{
    // bla bla bla
}

-(void) tick2: (CCTime) dt
{
    // bla bla bla
}
Run Code Online (Sandbox Code Playgroud)

  • 并且类似地在tick2内使用[self unschedule:@selector(tick2 :)]:当你想要它停止重复时. (2认同)

小智 16

http://www.cocos2d-iphone.org/wiki/doku.php/prog_guide:best_practices

  • 尽量不要使用Cocoa的NSTimer.而是使用cocos2d自己的调度程序.
  • 如果您使用cocos2d调度程序,您将拥有:
    • 自动暂停/恢复.
    • 当Layer(Scene,Sprite,CocosNode)进入舞台时,计时器将自动激活,当它离开舞台时,它将自动停用.
    • 您的目标/选择器将使用增量时间调用...