2012-02-07 15 views
3

私はシンプルなタイマーを作っていますが、時間の経過と共にタイマーのスピードを上げようとしているので、基本的にはタイマーの間隔を1.0にし、10秒ごとにタイマーのインターバルを0.1刻みで小さくしたいとします。Cocos2dスケジュール間隔デシリアライザ

どうすればいいですか?タイマーのinitセクションに

-(void)tick:(ccTime)dt{ 
myTime = myTime+1; 
totalTime = myTime; 

[timeLabel setString:[NSString stringWithFormat:@"%i", totalTime]]; 
} 

[self schedule:@selector(tick:)interval:1.0]; 

これは1.0秒の間隔を持つ基本的なタイマーですが、10秒ごとに10%ずつ間隔を減少したいと思います。 .hファイル

@property(nonatomic,readWrite)CGFloat lastUpdatedInterval; 

in.mファイル内

答えて

2

、self.lastUpdatedIntervalを初期= 1.0。

その後、

-(void)tick:(ccTime)dt 
{ 
    if(myTime>9 && (myTime%10 == 0)) 
    { 
     [self unschedule:@selector(tick:)]; 
     self.lastUpdatedInterval = self.lastUpdatedInterval - (self.lastUpdatedInterval*0.1); 
     [self schedule:@selector(tick:)interval:self.lastUpdatedInterval]; 
    } 

myTime = myTime+1; 
totalTime = myTime; 

[timeLabel setString:[NSString stringWithFormat:@"%i", totalTime]]; 

} 
+0

はちょうどそれが負になるのを防止するために、さらに条件を追加、更新ループで

[self schedule:@selector(tick:)interval:self.lastUpdatedInterval]; 

を呼び出します。 – samfisher

+0

'code' @property(非原子、readWrite)CGFloat lastUpdatedInterval; 'code'あなたはそれが何をしているのか教えていただけますか?ありがとう – sahil

+0

私はそれを試みましたが、それは言う:プロパティ 'lastUpdatedInterval'は定義されたメソッド 'setLastUpdatedInterval:'を必要とします - (at)synthesize、(at)dynamicまたはメソッドの実装を提供します。すみません。簡単な方法はありませんか? .mファイルの – sahil