|
■No98492 (星は昴 さん) に返信 > 魔界の仮面弁士 さんのコードでは > int offset = 3; > がポイントだと思うのですが、この働きと、値を 3 としている理由を教えていただけたら幸いです。
いや別に、offset は 1 でも 30 でも何でも良いです。
タイマーの Interval を 16 にしているのは、自分が使用している PC だと、 タイマーの分解能が、せいぜい秒間 60 回程度であるためです。 秒間 10 回程度ならば、Interval = 100 に設定しますよね。
TV のアニメーションだと、1 コマは秒間 24 回程度なので、 実際にはここまで細かくする必要は無いとは思います。 星は昴さんの Interval は幾つに設定されていますか?
で、その 1 コマの間に何ピクセル水平移動させるか…というのが int offset です。 値がマイナスの時は左方向に、プラスの方向は右方向に移動させています。
offset の値を大きくすれば、移動速度が速くなり、小さくすれば遅くなります。 ただしコマ数(fps) は変わらないので、offset を増やし過ぎると、 テレポートしている感じが強くなります。
また、Interval が大きくなれば、カクついた感じの動きになります。
ただ、offset や Interval がどうであれ、元質問の『ちらつき』は起きえないはずなんですよね。 ダブルバッファを意図的にオフにしていれば、相当ちらつくことにはなりますが…。 (描画数の多い KOZ さんのサンプルだと、特に顕著になるはず)
|