ゲーム画面に表示される飛行機を動かしてみましょう

ゲーム画面に表示される飛行機を複数表示してみましょう


マックス「あ、あのう


DrawGraph関数を使って


ゲーム画面に飛行機の画像が表示された


でも


これ


この飛行機よう


ゲーム画面と一体化しているので


うごかせないんじゃあないか」


solarplexuss「自然と一体化している・・・」


ソーラー「そう思う?


う~ん


いいね!」


マックス「よくないわあ」


ソーラー「それでは


飛行機が動いているように


みえるように


してみましょう」


solarplexuss「やったあ


ついに


飛行機がうごくのかあ」


ソーラー「うふふ


やってみる?


やってみる?」


solarplexuss「


やってみる!


やってみる!」


ソーラー「


まずは


DrawGraph関数だけを使った


次のプログラムをご覧ください」


マックス「 DrawGraph関数だけを使った


次のプログラム??


DrawGraph関数だけで


飛行機が動くようになるのか?」


ソーラー「えへへぇ


どうかな?


まあ みてみて😊」


そのプログラムはこちらです


#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(0, 230, graphichandle, TRUE);

DrawGraph(100, 230, graphichandle, TRUE);

DrawGraph(200, 230, graphichandle, TRUE);

DrawGraph(300, 230, graphichandle, TRUE);

DrawGraph(400, 230, graphichandle, TRUE);




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


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


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

}


デバッグなしで実行をしてから一度プログラムを終了し

生成されたexeファイルをハードディスクから探し出しクリックする方法により得られたプログラムの実行結果

👇


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


マックス「おっ


リアルに動いているわけではないが


飛行機がたくさん表示されているのは


なんか斬新だな


ははあ

DrawGraph関数を5回実行したので

👇



DrawGraph(0, 230, graphichandle, TRUE);

DrawGraph(100, 230, graphichandle, TRUE);

DrawGraph(200, 230, graphichandle, TRUE);

DrawGraph(300, 230, graphichandle, TRUE);

DrawGraph(400, 230, graphichandle, TRUE);


👆


飛行機が5機表示されたわけだ」


solarplexuss「ほんとだね」


ソーラー「こんどは


もっとたくさんの飛行機を表示してみましょう


DrawGraph関数を320回実行して


320機


飛行機を表示してみましょう」


マックス「ええっ 320機も飛行機を表示するのか?」


ソーラー「DrawGraph関数の第1引数の値を


0

1

2

3

4

317

318

319



値を変えながら


DrawGraph(0, 230, graphichandle, TRUE);

DrawGraph(1, 230, graphichandle, TRUE);

DrawGraph(2, 230, graphichandle, TRUE);

DrawGraph(3, 230, graphichandle, TRUE);

DrawGraph(4, 230, graphichandle, TRUE);

DrawGraph(319, 230, graphichandle, TRUE);



実行するんです」


solarplexuss「うわあ」


ソーラー「ぐへへ


DrawGraph(0, 230, graphichandle, TRUE);

DrawGraph(1, 230, graphichandle, TRUE);

DrawGraph(2, 230, graphichandle, TRUE);

DrawGraph(3, 230, graphichandle, TRUE);

DrawGraph(4, 230, graphichandle, TRUE);

DrawGraph(319, 230, graphichandle, TRUE);



記述するのは大変なので


for文を使って


for (int x = 0; x < 300; x=x+1) {


DrawGraph(x, 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");


for (int x = 0; x < 300; x=x+1) {


DrawGraph(x, 230, graphichandle, TRUE);


}



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


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


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

}


デバッグなしで実行をしてから一度プログラムを終了し

生成されたexeファイルをハードディスクから探し出しクリックする方法により得られたプログラムの実行結果

👇

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



マックス「うっわ


このジェット飛行機 すごいじゃないか?


どうやら


前に表示された飛行機の画像の上に


重なって飛行機の画像が表示されているようだな」


ソーラー「そうなんです


DrawGraph関数を使って画像を表示する場合


すでに表示されている画像の上に


重なって


画像が表示されることになります


ですから


次から次へと飛行機が重なって表示されることになります」








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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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