キャラクタのアニメーションは結局シンプルなやり方で実装しました。
スプライトを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++; } } }