キャラクタのアニメーションは結局シンプルなやり方で実装しました。
スプライトを6枚用意してspr_no[]という配列に格納します。spr_no[]内の0~2に右向きスプライト、3~5に左向きスプライトてな感じで3枚ずつ入れてます。
これを時間経過にあわせて差し替えていきます。時間経過はtimeという変数を用意して、これを加算していく事で実現します。ここではtimeが5の倍数になったら次のスプライトに差し替えます。スプライトの決定方法は(time/5)を3で割った余りになります。
最後にジャンプしてたり落下してる場合にアニメーションさせるのは変なので、重力変数gravityが0の場合のみ時間経過させるようにしてます。
これで歩くアニメだけは出来ました。
次回、というか並行して音楽の処理を触ってたんだけど、同じDirectX9.0cでも色々バージョンによる差異があるみたいで、資料が少なくちょっと苦労してます。
音楽後回しにして、ゲームとしてのギミックなんかを先にやろうかな。
//-----------------------------------------------------------------------------
// 移動
void CMyChara::Move()
{
float work_x, work_y; // 移動量
// 他の処理
// スプライトアニメーション
if (work_x!=0) {
if (work_x<0) {
// 左向き
now_spr_no=spr_no[((time/5)%3)+3];
}
else {
// 右向き
now_spr_no=spr_no[((time/5)%3)];
}
if (gravity==0) {
time++;
}
}
}