日別アーカイブ: 2008年12月24日

クリスマスイヴなのでケーキを食べる

5c2f36c6.jpg今日はクリスマスイヴなのでケーキを買って来ました。

例年は1カット単位で買えてたのに、なぜか今年は1ホール単位でしか買えなくなってたよ。およそ飲み会1回分の値段です。えらい出費だ。

あとワインも買って準備OK。さぁて毎年恒例の独りクリスマスイヴです。いや、ねんどろいど初音ミクさんがいるから独りではないな。にしても、ねんどろいどが小さく見える程、ケーキでかいです。

しかし1ホールのケーキなんて食べきれないって(汗) これはもう晩飯といっても過言ではないね。案の定食べきれなかったので、残りは明日の朝食にすることにしました。

ゲーム開発21:キャラクタアニメーション

a793fad8.jpgキャラクタのアニメーションは結局シンプルなやり方で実装しました。

スプライトを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++;
  }
 }
}