0

我有一个方法可以在屏幕上绘制一个带有动画效果的精灵,如果我在 init 中调用这个方法

if( (self=[super init]) ) {
// ....
[self myMethod];
// .....
}

然后他在我的项目上做了一次

当我按计划打电话时

-(void)schedulMyMethod:(ccTime)dt {
    [self myMethod];
}

if( (self=[super init]) ) {
// ....
[self schedule:@selector(schedulMyMethod:) interval:0.5];
// .....
}

它运行无限次

我需要这样我才能调用我的方法

4

1 回答 1

0

你的意思是,你想让它重复N次?您需要保持其运行剩余时间的状态。

@property (nonatomic, assign) NSInteger timesToRunMyMethod;


- (void)beginRunningMyMethod {

    self.timesToRunMyMethod = 100;   // N==100
    [self myMethod];
}

- (void)myMethod {

    self.timesToRunMyMethod--;
    // do stuff
    if (self.timesToRunMyMethod > 0) {
        // i used native delayed execution, you can replace it with whatever cocos2d offers if you want
        [self performSelector:@selector(myMethod) withObject:nil afterDelay:0.5];
    }
}

在 init 上启动它可能是错误的。它是视图控制器吗?然后你可以使用 viewDidAppear 或 willAppear。

于 2013-02-03T22:41:54.717 回答