アニメーションさせてみる。初めの方では 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)。
後は環境マップのカスタマイズが必要。
- - - -
なお、今回もサンプルコード提供はありません。
実はトランジションで使っている環境マップ画像は
他サイトから勝手に借りてきて使っている為です。
環境マップが自前で用意できるようになったら公開します。