1

我目前正在使用 cocos2d Director 通过 、 和 方法控制我pauseresume动画stopAnimation。是否也可以使用Director来返回动画播放的时间?

我目前正在使用这种方法:

-(void)stopAnimation:(id)sender {
    //Timer initialized elsewhere: startTimer = [NSDate timeIntervalSinceReferenceDate];
    //Do other method stuff here 

    [[Director sharedDirector] stopAnimation];
    stopTimer = [NSDate timeIntervalSinceReferenceDate];
    elapsedTime = (stopTimer - startTimer);
    NSLog(@"elapsedTime = %f", elapsedTime);
}
4

1 回答 1

3

我查看了 Director 的源代码,没有看到任何可以帮助你的东西。我确实注意到您编写的代码没有考虑动画暂停的时间或其他场景的播放时间。

如果这是一个问题,您可以在场景或图层中安排的刻度方法中跟踪经过的时间。

MyLayer.h

@interface MyLayer : Layer {
  ccTime totalTime;
}

@property (nonatomic, assign) ccTime totalTime;

MyLayer.m

-(id)init 
{
    if( (self = [super init]) )
    {
        [self schedule:@selector(update:)];
    }

    return self;
}

// deltaTime is the amount of running time that has passed
// since the last time update was called
// Will only be called when the director is not paused
// and when it is part of the active scene
-(void)update:(ccTime)deltaTime
{
    totalTime += deltaTime;
}
于 2009-08-03T04:35:44.900 回答