挫折不可能!初級ゲームプログラミング完全マニュアル  RSSを登録する

「ゲームが作りたいけどプログラミングなんて全然知らない」「文系だし数学や物理が苦手だけどゲームが作れるだろうか?」そんなアナタのためのメールマガジンです。PCの電源を入れてからどうすればいいのか?から自分のゲームが完成するまでを応援します!

最新号をメルマガでお届けします    
登録 解除

規約に同意して

登録した方には、まぐまぐの公式メルマガ(無料)をお届けします。
2008/04/13

初級ゲームプログラミング完全マニュアル [vol.0041 2008/04/13]

┏┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳┓
┣┛                                                            ┗┫
┃       挫折不可能!  初級ゲームプログラミング完全マニュアル       ┃
┃                                                                  ┃
┃                       第 41 号  2008/04/13                       ┃
┣┓                                                             ┏┫
┗┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┻┛
                            - Ads space -
┌┬───────────────────────────────┬┐
││ はじめに                                                     ││
└┴───────────────────────────────┴┘

 みなさま、こんにちは!

 個人ゲーム制作アドバイザーの Byerkut です!

 そろそろ入学式が始まる頃ですよね。

 地元の小学校でも正装の親子連れをよく見かけるようになりました。

 新生活におかれましては不安もあるかと思いますが、

 どうか気張らずにいつも通りの自分を見失わないでください。

 無理がたたると5月病などが心配になってしまいます。

 さて、今日からは画像ファイルの表示について詳しく見ていきます。

┌┬───────────────────────────────┬┐
││本日のラインナップ                                            ││
└┴───────────────────────────────┴┘
 
 ・今日のメインテーマ
   【画像ファイルを読み込もう(前編)】

 ・あとがき

┌┬───────────────────────────────┬┐
││ みんなの備忘録                                               ││
└┴───────────────────────────────┴┘

  ■Visual C++ 2008 Express Edition をインストールする手順
    http://www.game-create.com/archives/235

  ■Visual C++ 2008 Express Edition でプロジェクトを新規作成する手順
    http://www.game-create.com/archives/270

 ■VC++ 2005 EE でプロジェクトにソースファイルを登録する手順
    http://blog.mag2.com/m/log/0000240151/108824854.html

 ■画像ファイルを LoadImage() 関数で読み込めるようにする手順
    http://www.game-create.com/archives/308

┏┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳┓
┃┃                                                              ┃┃
┃┃                      今日のメインテーマ                      ┃┃
┃┃                                                              ┃┃
┃┃             【画像ファイルを読み込もう(前編)】             ┃┃
┃┃                                                              ┃┃
┗┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┻┛

 前回までの内容で、画像ファイルを読み込んで表示すれば

 ゲーム画面らしいグラフィックを表現できることがわかりました。

 また、読者のみなさまの中にも

 「とにかく絵を表示するところから始めたいよ」という方が

 いらっしゃることと思います。

 というわけで、今日からは画像ファイルを表示する方法を

 具体的に見ていきたいと思います。



 まずは、以前配布したサンプルをご覧ください。

    http://www.game-create.com/archives/309

 見ていただきたいのは「サンプル1」の方です。

 ダウンロードが終わりましたらビルドして実行してみてください。

 このとき、同梱されている画像ファイルをプロジェクトファイルと

 同じディレクトリにコピーする必要がありますので注意してください。

 詳しくは過去記事を参照ください。

    http://archive.mag2.com/0000240151/20080330192119000.html
    http://www.game-create.com/archives/308

 以前のファイルが残っている場合は、そちらでかまいません。

 …実行できましたでしょうか?

 実行すると大きな画像が表示されたかと思います。

 動作が確認できたら ESC キーを押して終了してください。

 このサンプル自体は以前にも確認いただいたものでしたね。

 今回はサンプルソースを具体的に見ていきたいと思います。



 さて、ここで前回の内容を思い出してください。

 画像ファイルの内容を画面に表示するためには

 いったい何が必要だったでしょうか?



 そうです、「画像ファイルをメモリへ読み込む」ということです。

 もし、忘れてしまった方は前回のメルマガを参照ください。

    http://archive.mag2.com/0000240151/20080406202024000.html

 では、 Windows のプログラムで画像ファイルをメモリへ読み込むには

 いったいどうしたらよいのでしょうか?

 実は簡単です。

 LoadImage() という関数を実行するだけです。

 先ほど実行したサンプル1のソースファイルを開いてください。

 次のような一文が見つかると思います。

  ------------------------------------------------------------------
  HBITMAP bitmap =
    (HBITMAP)LoadImage(NULL,
                       TEXT("madoka.bmp"),
                       IMAGE_BITMAP,
                       0, 0,
                       LR_LOADFROMFILE);
  ------------------------------------------------------------------

 変な風に改行が入っていますが、1行で書いたのと同じ意味です。

  ------------------------------------------------------------------
  HBITMAP bitmap = (HBITMAP)LoadImage(NULL, TEXT("madoka.bmp"),
                                      IMAGE_BITMAP, 0, 0,
                                      LR_LOADFROMFILE);
  ------------------------------------------------------------------

 こんな風に書いても問題ありません。

 実はこれだけで画像ファイルがメモリ内に読み込まれてしまうのです。

 なんともありがたいことですね。

 しかしながら…

 「ひとつの関数で画像が読み込めるのはわかったけど、

  引数がわけわからん」というのが本音だと思います。

 これは無理もありません。私もそう思います。

 しかし、不安になることはありません。

 確かに引数は複雑ですが、ほとんどの値はコピペで問題ありません。

 つまり、前述のサンプルをコピーすれば動いてしまうのです。

 変更が必要な箇所は次の下線部です。

  ------------------------------------------------------------------
  HBITMAP bitmap =
    (HBITMAP)LoadImage(NULL,
                       TEXT("madoka.bmp"),
                       ~~~~~~~~~~~~~~~~~~ ←ここ
                       IMAGE_BITMAP,
                       0, 0,
                       LR_LOADFROMFILE);
  ------------------------------------------------------------------

 なぜ、ここだけ変更が必要なのかというと、

 ここで、読み込みたい画像のファイル名を指定するからです。

 TEXT("madoka.bmp") の括弧の中をよく見てください。

 madoka.bmp となっていますよね?

 そうです、これはビットマップファイルの名前だったのです。

 ここを編集することによって

 好きなビットマップファイルを読み込むことができます。

 たとえば player.bmp というファイルを読み込みたい場合は…

  ------------------------------------------------------------------
  HBITMAP bitmap =
    (HBITMAP)LoadImage(NULL,
                       TEXT("player.bmp"),
                       ~~~~~~~~~~~~~~~~~~ ←ここに注目
                       IMAGE_BITMAP,
                       0, 0,
                       LR_LOADFROMFILE);
  ------------------------------------------------------------------

 …と書きます。

 ただし、 player.bmp がプロジェクトディレクトリの中に

 おいてある必要がありますので注意してください。

    http://archive.mag2.com/0000240151/20080330192119000.html
    http://www.game-create.com/archives/308



 これで、画像ファイルをメモリへ読み込む方法がわかりました。

 さぁ、では次は画面に表示する部分の解説を…

 …と、行きたいところなのですが、

 今回はここまでにしておきたいと思います。

 「もったいつけるなよ」と思われてしまうかもしれませんが、

 次に登場する概念が少し面倒な部分となっておりますので、

 じっくりと時間をかけて説明したいと思っております。

 今回は LoadImage() 関数について次のことを覚えておいてください。

    ・LoadImage() 関数はコピペで使い回せる。

    ・LoadImage() 関数の第2引数は
      メモリに読み込みたい画像ファイルの名前を渡す。

    ・LoadImage() 関数で読み込むファイルは
      プロジェクトディレクトリにおいてある必要がある。

 ぜひとも、今回のサンプルを使って

 いろいろな画像ファイルを読み込んでみてください。

 第2引数を変更するだけで「別のファイルが読み込めるんだ」

 ということがわかっていただけるかと思います。

 今後、 LoadImage() 関数が登場したら第2引数に注目してみてください。

 そこでは第2引数のファイルをメモリに読み込んでいるのです。



 次回は「画像を読み込もう」の中編をお伝えします。



 今回も最後まで読んでいただきましてありがとうございます!

 それでは!

                                                            Byerkut.

┌┬─────┬─────────────────────────┬┐
││ あとがき │  発行者のつぶやきです                            ││
└┴─────┴─────────────────────────┴┘

 久しぶりに地元のおもちゃ屋へ行ったら、

 ほとんどが幼児向けのコーナーに変わっていました。

 なるほど、確かにゲームやプラモデルなんかは

 最近 CD ショップで買えますよね。

 おもちゃ屋のワクワク感が味わえなくなると思うと寂しいものですね。

┌┬───────────────────────────────┬┐
├┘                                                            └┤
│  購読の解除はこちら↓                                            │
│  http://www.game-create.com/contents/gp_beginners_ml             │
├┐                                                             ┌┤
└┴───────────────────────────────┴┘
                            - Ads space -
┌┬───────────────────────────────┬┐
├┘                                                            └┤
│ 「挫折不可能!初級ゲームプログラミング完全マニュアル」は、       │
│ 「いちばんやさしいゲームの作り方」が運営しています。             │
│                                                                  │
│  サイト     : http://www.game-create.com/                        │
│  発行元     : http://www.game-create.com/menu/about              │
│  発行者     : http://www.game-create.com/menu/profile            │
│  問い合わせ : http://www.game-create.com/menu/contact            │
│  利用規約   : http://www.game-create.com/informations/agreement  │
├┐                                                             ┌┤
└┴───────────────────────────────┴┘
                 POWERED BY LIBERTIASTER GAME STYLE.
最新号をメルマガでお届け
登録 解除

規約に同意して

登録した方には、まぐまぐの公式メルマガ(無料)をお届けします。

最近の記事

上へ戻る