ページ

2008年10月8日水曜日

波紋(その11)

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

アニメーションさせてみる。初めの方では CoreAnnimationを使ったが、NSTimerを使い自前でタイミングを計る。

STARTボタンでタイマーを起動。

- (IBAction)start:(id)sender
{
_count = 0;
float interval = 1.0/[_framePerSec floatValue];
[NSTimer scheduledTimerWithTimeInterval:interval
target:self
selector:@selector(fire:)
userInfo:nil
repeats:YES];
}


タイマーが発火したら(前回までで用意した)トランジション画像描画メソッドを呼ぶ。
-(void)fire:(NSTimer*)theTimer
{
_count++;
float max_count = [_totalSec floatValue] * [_framePerSec floatValue];
if (_count > max_count) {
[theTimer invalidate];
}
_inputTime = [NSNumber numberWithFloat:(_count / max_count)];
[self redrawImage];
}



単に動かすだけでは調査にならないので、1秒当たりのフレーム数(_framePerSec)と、全体の時間(_totalSec)を調整できるようにした。

こんな感じ。


パラメータをいじりながらトランジションを確認していくと、だんだんいい感じになってきた。
今いい感じなのは上画像のパラメータセット(inputWith:102.0, inputScale:26.1, framePerSec: 20, totalSec: 2.0)。

後は環境マップのカスタマイズが必要。

- - - -
なお、今回もサンプルコード提供はありません。
実はトランジションで使っている環境マップ画像は
他サイトから勝手に借りてきて使っている為です。
環境マップが自前で用意できるようになったら公開します。