2010年08月11日

そんな主人公

char0.gif

 あれ。実行ファイルだけじゃ動かなかったのか……。実行ファイルの中に画像データも含まれていると思ってた。さっき確認してみてはじめて知った。
 実行ファイルを上げて中間報告としたかったけれど、これでは上げても意味がないな。

 ドット打ちました。あと、ジャンプ中と歩行中と走行中とダメージ中と諸々とそれらの中間アニメーションが必要になります。あー嫌だーメンドくさいー。
 メンドくさいのでこれだけでとりあえず動かせるプログラムを書いています。今は壁床の当たり判定をやっているところです。

sam1.png

 主人公さんが床にめり込んでおります。
 「足元が床かどうか」という条件で落下と直立を分けているのですけれど、1ドットずつ落下移動しているわけではないので、タイミングよく条件分岐しない限りは判断が遅れるのです。
 私の見ている講座では画面をブロックの大きさごとに分けて考えればよいとしています。けれど、私は画面を自由に使いたいのでこの方法を使いたくありません。いい方法がないものか考えております。



 追記:すごい。一発でうまくいったぞ。こんなことはめったにないのでとてもうれしい。

PlayerY -= JumpPower; // 落下処理
JumpPower -= 1; // 落下加速度を加える
 
//床を検索する
for (stara1 = 0; stara1 < 480; stara1++)
{
   for (stara2 = 16; stara2 < 32; stara2++)
   {
      DX.GetPixelSoftImage(BackGraph, PlayerX + stara2, PlayerY + 64 + stara1,
      out red, out green, out blue, out alpha);
      if (stara1==0 & red == 0 & green == 0 & blue == 0 )
      {
         JumpPower = 0; //着地
      }
      else if (-JumpPower>stara1 & red == 0 & green == 0 & blue == 0)
      {
         JumpPower = -stara1; //床にめり込みそうなとき落下加速度を
         床までの距離にする
      }
   }
}
posted by clown-crown at 19:00| パリ ☁ | TrackBack(0) | 製作日誌 | このブログの読者になる | 更新情報をチェックする
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/159148177

この記事へのトラックバック