ゲームプログラマになるには(4)

2Dグラフィックスの基礎を覚えたら,絵をはりつけた板を並べるようなタイプのゲームはすぐ出来ると思います。次はアニメーションの話しです。2Dのアニメーションは大きくわけて2つあり,絵柄を変えるアニメーシヨンと移動するアニメーションがあります。

今回は,絵柄を変えるアニメーションの話ししをしてみましょう。15パズルなどを作るとき,絵柄を変えるのですが,時間の経過に合わせて絵柄,本質的には絵の番号を選ぶことができればよいです。一定時間ごとになにかするにはタイマーいうものを使うか,もともとゲームループといって1秒間に30回描画するループであればそのループ回数のカウントを使うことになります。とにかく,例えば1/10秒ごとに何かする段取りが出来たとすると,絵柄を0番目,次は1番目,次は2番目のように変えていければよいです。4枚の絵を繰返し表示するならば
0→1→2→3→0→1→2→3→…
という番号のくりかえしになります。これは
0→1→2→3→4→5→6→7→…
という繰返しのカウントを4で割った余りになります。mod,C言語では%演算子なのですが,剰余の計算が役立ちます。ついでに毎コマで無く3コマごとにするのは整数の割り算です。
1/30秒ごとに処理するとし,繰返しカウントをcountするならば1/10秒ごとに0から3までの絵の番号iを計算する式は次のようになります。
i = ( count  /  3 ) % 4; 
ちょっと難しいかもしれませんが,本質的には整数の割り算と余りなので,ゆっくり考えれば納得できると思います。そして一度この式が分かってしまえば,何枚の絵の繰返しアニメーシヨンでも自在にできるようになります。プログラム言語を学習するとき,剰余を何に使うのかと思うことがあるかもしれませんがこういうところで役立ちます。

ゲームプログラマになるには数学の知識が必要では思われるかもれませんが,このように繰返しアニメーシヨンをさせたいときに,割り算と余りを知っていれば,このような計算ができます。初めは難しいかもしれませんが,一度じっくり考えて納得してしまえば,あとはうまくいった式を使いまわせばよいのです。

AW

comments