2012-06-21 4 views

ответ

1
float interval = .7; 

-(id)init{ 
    ... 
    [self scheduleOnce:@selector(gameLogic:) delay:interval]; //Check the name of the method, I'm not 100% sure about it 
    ... 
} 

-(void)gameLogic:(ccTime)dt { 
    [self addTarget]; 
    interval += dt; //Or whatever you want to increase it by 
    [self scheduleOnce:@selector(gameLogic:) delay:interval]; //Check the name of the method, I'm not 100% sure about it 
} 
+0

Это '- (void) scheduleOnce: (SEL) selector delay: (ccTime) delay;' Но в остальном ваш ответ должен работать нормально! – MechEthan

+0

Спасибо, я обновил свой ответ. – EmilioPelaez

2

Почему бы не объявить простое свойство (INT, поплавок и т.д.), чтобы держать количество раз ваш метод был вызван, и увеличивать его при вызове самого метода? Таким образом, это просто проблема умножения:

//.h 
... 
@property (nonatomic, assign) int iterations; 
//.m 
@synthesize iterations = iterations_; 
[self schedule:@selector(gameLogic:) interval:0.7*iterations_]; 

-(void)gameLogic:(ccTime)dt { 
    [self addTarget]; 
    iterations_++; 
} 
+0

Как это так, мой друг? – CodaFi

+0

Мои извинения, я должен сначала прочитать документацию по заголовку! 'Если селектор уже запланирован, то параметр интервала будет обновлен, не планируя его снова.' Итак, ваш ответ тоже сработает. Сожалею! – MechEthan

+0

Никогда не думал, что это простой LOL. Спасибо –

Смежные вопросы