DrawGraph(300, 230, graphichandle, TRUE); をもちいて実際に画像をゲーム画面に表示してみましょう

ソーラー「えへ そう


ゲーム画面(コマンドプロンプト画面)に


DrawGraph(300, 230, graphichandle, TRUE);


をもちいて


画像を表示するには


2段階の過程が必要なんだよ


まず


DrawGraph(300, 230, graphichandle, TRUE);


をもちいたプログラムを記述します」


👇

#include "DxLib.h"


int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)

{



ChangeWindowMode(TRUE); // ウインドウモードに設定します


if (DxLib_Init() == -1) // DXライブラリを初期化処理しています

{

return -1; // DXライブラリの初期化に失敗したら直ちにプログラムを終了します

}



int graphichandle;


graphichandle=LoadGraph("画像データ\\ソーラーが描いた飛行機.bmp");


DrawGraph(300, 230, graphichandle, TRUE);//👈ここです🌞DrawGraph関数を実行しています


WaitKey(); //🌞 キーの入力を待っています 何かキーが入力がされるまで これ以上プログラムは実行されません


DxLib_End(); // DXライブラリの使用を終了します DXライブラリの使用しているメモリ領域が解放されます


return 0; // プログラムを終了します

}



ソーラー「みんな用意はいいかな


ソースコードを記述できたかな?


では



第一段階です


          😊いままで通り(*´▽`*)


Visual Studioの画面の上部のメニューから


デバッグ(D)



選択

クリックして


表示されるメニュー画面から


デバッグなしで開始(H)


をクリックして


[

上記のプログラムを実行します


int graphichandle;


graphichandle=LoadGraph("画像データ\\ソーラーが描いた飛行機.bmp");


DrawGraph(300, 230, graphichandle, TRUE);


が実行されているはずですが


ソーラーが描いた飛行機.bmpファイルに保存された画像がゲーム画面に表示されることはなく


やはり


ゲーム画面は真っ黒なままで何も表示されません


以下を参照してね

👇

プログラムの実行結果


https://solalion.blogspot.com/2021/07/blog-post_19.html



でも


このプログラムを実行する


exeファイル



生成され


ハードディスクのどこかに保存されています


exeファイル


が実行されたからこそ



画面に


真っ黒な画面が表示されています


今の



       🌞exeファイルを生成しexeファイルのハードディスクへの保存🌞




第1段階の終了となります


次は


第2段階です


コンピューターのハードディスクの中から


今、作製されたexeファイルのある場所を探し出します」


マックス「作製されたexeファイルのある場所ってどこだ?」


ソーラー「以前のエピソードでも


解説されましたが


私たちの場合


プロジェクト名をgameに設定したので


生成されるexeファイルの名前は


gameとなります


ですので


game.exeファイルのある場所を探すことになります



game.exeファイルのある場所は


Cドライブの中の


Usersフォルダの中の


solarフォルダの中の


sourceフォルダの中の


reposフォルダの中の


gameフォルダの中の


          🌞Debugフォルダ🌞の中となっています


game.exeファイルへの完全パスは


(game.exeファイルへたどり着くための道は)


C:\Users\solar\source\repos\game\Debug\game.exe


となっています


その様子はこちらです

👇

https://solalion.blogspot.com/2021/07/blog-post_89.html


ご注意🍊


私はプロジェクト名をgameにしましたが


たとえば


プロジェクト名をappleにしたなら


生成されるexeファイルの名前は


appleとなります


apple.exeファイルのある場所は


Cドライブの中の


Usersフォルダの中の


solarフォルダの中の


sourceフォルダの中の


reposフォルダの中の


appleフォルダの中の


          🌞Debugフォルダ🌞の中となっています


apple.exeファイルへの完全パスは


(apple.exeファイルへたどり着くための道は)


C:\Users\solar\source\repos\apple🍎🍎🍎🍎🍎\Debug\apple🍎🍎🍎🍎🍎.exe


となります


マックス「game.exeファイルみ~つけたあ」


ソーラー「あとは


この


game.exeファイルをクリックするだけで


game.exe


が実行されることになります


すると


今度は


int graphichandle;


graphichandle=LoadGraph("画像データ\\ソーラーが描いた飛行機.bmp");


DrawGraph(300, 230, graphichandle, TRUE);


ちゃんと実行され


今度こそ


ソーラーが描いた飛行機.bmpファイルに保存された画像が


ゲーム画面に表示されることになります


その様子はこちらです


👇

https://solalion.blogspot.com/2021/07/blog-post_38.html




マックス「・・・やったな・・・


ついに


ソーラーが描いた飛行機がゲーム画面に表示されたな・・・」


solarplexuss「ねえ ねえ


なんで


第一段階の


デバッグなしで実行


を実行したとき



ソーラーが描いた飛行機.bmpファイルに保存された画像が


ゲーム画面に表示されなかったのかな?



ソーラー「おそらくなんだけど


デバッグなしで実行


を実行したとき



int graphichandle;


graphichandle=LoadGraph("画像データ\\ソーラーが描いた飛行機.bmp");


によって


ソーラーが描いた飛行機.bmpファイルに保存された画像に


グラフィックハンドル(整数値データ)は割り当てられ


int型の変数graphichandleにグラフィックハンドル(整数値データ)


が代入されるんだけど


DrawGraph(300, 230, graphichandle, TRUE);


の実行の際


どうも


DrawGraph関数は


ソーラーが描いた飛行機.bmpファイルに保存された画像に


アクセスできていないみたいなんだ


なんでだろう?


不思議だね😊」


マックス「もしかして


DrawGraph関数は


グラフィックハンドル(整数値データ)


を引数に用いることにより


グラフィックハンドル(整数値データ)が割り当てられた画像を表示するのか?」


ソーラー「そうなんです


DrawGraph(300, 230, graphichandle, TRUE);


のように


DrawGraph関数の実行において


DrawGraph関数の第3引数



画像データに割り振られたグラフィックハンドル(整数値データ)


もしくは


画像データに割り振られたグラフィックハンドル(整数値データ)


を格納した変数


を代入することにより


グラフィックハンドル(整数値データ)が割り当てられた画像が


表示されることになります」





























































  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る