さあC言語(DXライブラリ)を使って超繊細、美麗、箱庭シューティングゲームを作ってみましょう 超初心者向けです 0.367
DrawGraph関数👉DrawGraph(300, 230, graphichandle, TRUE);の仕組みを考察してみよう
DrawGraph関数👉DrawGraph(300, 230, graphichandle, TRUE);の仕組みを考察してみよう
マックス「じゃあ
DrawGraph(300, 230, graphichandle, TRUE);
の
第4引数
TRUE
はなんのためにあるんだ?」
solarplexuss「それは
愛=TRUE
のために
あるんだ」
マックス「意味が分からん!」
ソーラー「DrawGraph関数の第4引数は
TRUE(もしくは1)
か
FALSE(もしくは0)
のどちらかの値をとることができます
第4引数が
TRUEに設定されていると
グラフィックハンドルが割り当てられた画像がゲーム画面に表示されたとき
グラフィックハンドルが割り当てられた画像に用いられた黒い色の部分
が透明になって下の絵が透けて見えるようになります
FALSEに設定されていると
グラフィックハンドルが割り当てられた画像がゲーム画面に表示されたとき
グラフィックハンドルが割り当てられた画像に用いられた黒い色の部分
は透明にならず 黒い部分の下の絵が透けて見えるようにはなりません」
solarplexuss「ええんん なんのはなし~よくわかんな~い」
ソーラー「それでは
DrawGraph関数の第4引数が
TRUE(もしくは1)
と
FALSE(もしくは0)
となっている場合では
どのような違いが出てくるのかを観察してみましょう
まずは
DrawBox(100, 100, 500, 300, GetColor(255,0,0), TRUE);
を実行して
赤い四角形の領域を作成します」
マックス「なつかしいのう
DrawBox関数か」
ソーラー「
その
赤い四角形の領域のうえに
DrawGraph(300, 230, graphichandle, TRUE);
を実行して
飛行機を表示してみましょう
そうすれば
DrawGraph関数の第4引数が
TRUE(もしくは1)
と
FALSE(もしくは0)
の場合の違いがよくわかるんだ~」
飛行機の画像データはこちらのサイトの画像を利用しています
👇
https://solalion.blogspot.com/2021/07/blog-post_37.html
まずは
DrawGraph関数の第4引数が
TRUE(もしくは1)
の場合の
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ライブラリの初期化に失敗したら直ちにプログラムを終了します
}
DrawBox(100, 100, 500, 300, GetColor(255,0,0), TRUE);//👈DrawBox関数を実行しています
int graphichandle;
graphichandle = LoadGraph("画像データ\\ソーラーが描いた飛行機.bmp");
DrawGraph(300, 230, graphichandle, TRUE);//👈ここです🌞DrawGraph関数を実行しています
WaitKey(); //🌞 キーの入力を待っています 何かキーが入力がされるまで これ以上プログラムは実行されません
DxLib_End(); // DXライブラリの使用を終了します DXライブラリの使用しているメモリ領域が解放されます
return 0; // プログラムを終了します
}
プログラムの実行結果
https://solalion.blogspot.com/2021/07/blog-post_71.html
マックス「ぐわわ 赤い・・・
しかも
飛行機の画像が表示されとらん
なぜだあ!」
solarplexuss「もうん
ゲーム画面(コマンドプロンプト画面)に
DrawGraph関数
👇
DrawGraph(300, 230, graphichandle, TRUE);
をもちいて
画像を表示するには
2段階の過程が必要なんでしょう
まだ1段階しか終了してないよ
今のプログラムを実行すると
exeファイルが作製されたんでしょう
で
🍓表示されている赤い画面を消して
プログラムを終了🍓して
これで
第1段階の終了
あとは
その
exeファイル
を
コンピュータのハードディスクから探し出して
クリックしないと
ゲーム画面に飛行機の画像を表示することはできなかったよね
クリックして
第2段階の終了」
マックス「あヽ(^o^)丿ヽ(^o^)丿そうだった
なはは
2段階、2段階
では
作製された
exeファイル
を
コンピュータのハードディスクから探し出して
クリック クリッ~ク」
exeファイル
を
クリックしてプログラムを実行すると
以下のように
飛行機がゲーム画面に表示されます
👇
https://solalion.blogspot.com/2021/07/blog-post_54.html
マックス「赤いな・・・
画面が燃えているな」
solarplexuss「飛行機が普通に表示されているね」
ソーラー「
次は
DrawGraph関数の第4引数が
FALSE(もしくは0)
の場合の
DrawGraph(300, 230, graphichandle, FALSE);
を実行してみましょう
👇
#include "DxLib.h"
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
ChangeWindowMode(TRUE); // ウインドウモードに設定します
if (DxLib_Init() == -1) // DXライブラリを初期化処理しています
{
return -1; // DXライブラリの初期化に失敗したら直ちにプログラムを終了します
}
DrawBox(100, 100, 500, 300, GetColor(255,0,0), TRUE);
int graphichandle;
graphichandle = LoadGraph("画像データ\\ソーラーが描いた飛行機.bmp");
DrawGraph(300, 230, graphichandle, FALSE);//👈ここです🌞DrawGraph関数を実行しています
WaitKey(); //🌞 キーの入力を待っています 何かキーが入力がされるまで これ以上プログラムは実行されません
DxLib_End(); // DXライブラリの使用を終了します DXライブラリの使用しているメモリ領域が解放されます
return 0; // プログラムを終了します
}
プログラムの実行結果
https://solalion.blogspot.com/2021/07/blog-post_61.html
マックス「
まんま
ソーラーが描いた飛行機.bmpファイルに保存されていた
画像データが黒い部分を含めて
そのまんま
赤い画面に表示されている
なんだ?
確かに
ソーラーが描いた飛行機.bmpファイルに保存されていた
画像データ
は
以下の図のように
👇
https://solalion.blogspot.com/2021/07/blog-post_90.html
黒い四角い画面領域の中に
飛行機が描かれていたが
なんで
黒い四角い画面領域ごと
飛行機が表示されているんだ?」
ソーラー「それは
そもそも
DrawGraph関数は
グラフィックハンドルが割り振られた画像
を
ゲーム画面に表示する働きがあるからなんです
グラフィックハンドルが割り振られた画像
は
四角形の領域に描かれているので
四角形の画像だね
だから
DrawGraph関数
を実行すると
その四角形の画像が
ゲーム画面に表示されることになります
たとえ
四角形の画像の中に
黒い色が用いられている領域があったとしても
その黒い色が用いられている領域も
もちろん
ゲーム画面に
表示されることになります
DrawGraph関数
👇
DrawGraph(300, 230, graphichandle, TRUE);
のように
第4引数がTRUEになっていると
画像データの
黒い領域の部分
は
透明な扱いになるんです
だからこそ
DrawGraph(300, 230, graphichandle, TRUE);
が実行されると
さっきの画面のように
黒い色で塗られた画面は表示されないんだね」
その様子はこちらです
👇
https://solalion.blogspot.com/2021/07/blog-post_54.html
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます