飛行機のデータを一括して 1つの構造体変数で管理してみよう そのために構造体を作製することになります

ソーラー「さあ


みなさん


👇



#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");



SetDrawScreen(DX_SCREEN_BACK);//👈🌞SetDrawScreen関数です


int x = 0;


int y = 0;



while (CheckHitKey(KEY_INPUT_ESCAPE) == 0 && ProcessMessage() == 0) {


DrawBox(100, 100, 500, 300, GetColor(0, 255, 255), TRUE);


int key=GetJoypadInputState(DX_INPUT_KEY_PAD1);


if (key & PAD_INPUT_UP) y = y - 4;

if (key & PAD_INPUT_DOWN) y = y + 4;

if (key & PAD_INPUT_LEFT) x = x -4;

if (key & PAD_INPUT_RIGHT) x = x + 4;




DrawGraph(x,y,graphichandle, TRUE);


ScreenFlip();


ClearDrawScreen();


};



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


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

}


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

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


👇

https://youtu.be/UePaU-jOeKc



ソーラー「キーボードからのキー入力に応じて


ゲーム画面内で飛行機が飛んでいくプログラムも


作製できるようになりました


ところで


このゲーム画面内を飛んでいる飛行機ですが


飛行機をとばすためには


様々な飛行機に関するデータが必要になります



飛行機のいる位置を表すx座標のデータ


飛行機のいる位置を表すy座標のデータ


それに


飛行機のグラフィックデータ


がなければ


飛行機を飛ばすことはできませんね


飛行機のグラフィックデータには


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


が割り当てられているので



飛行機を飛ばすには


飛行機のいる位置を表すx座標のデータ


飛行機のいる位置を表すy座標のデータ


飛行機のグラフィックデータに割り当てられたグラフィックハンドル(数値データ)


が必要となると言い換えることもできます


ところで


ゲーム画面に追加して


味方の飛行機1を飛ばしてみる場合にも


飛行機1を飛ばすには


飛行機1のいる位置を表すx1座標のデータ


飛行機1のいる位置を表すy1座標のデータ


飛行機1のグラフィックデータに割り当てられたグラフィックハンドル1(数値データ)

が必要になります


さらに


ゲーム画面に


敵の飛行機を1機


飛ばすには



敵の飛行機のいる位置を表すx2座標のデータ


敵の飛行機のいる位置を表すy2座標のデータ


敵の飛行機のグラフィックデータに割り当てられたグラフィックハンドル2(数値データ)


が必要になります


それらのデータは


飛行機なら


変数

x

y

graphichandle



飛行機1なら


変数

x1

y1

graphichandle1


敵の飛行機なら


変数

x2

y2

graphichandle2


によって


取り扱われるケースがおおいですね




ですが


プログラムの中で


飛行機を構成するデータを取り扱う変数


x

y

graphichandle


だけを


みたとき


どの飛行機を構成しているデータを取り扱っている変数なのか


若干


わかりにくいですね」



solarplexuss「そう🦆《かも》」



ソーラー「実は



プログラムに登場する変数が


飛行機を構成するデータを取り扱う変数

なのか

飛行機1を構成するデータを取り扱う変数

なのか

敵の飛行機を構成するデータを取り扱う変数

なのか


簡単にわかるようにする方法があるんです



ここで


登場するのが


          🌞構造体🌞


なんです」


ソーラー「


構造体について


詳しくお知りになりたい方は



天国にいけるC言語入門ヘキサ構造体の


構造体のエピソードをご覧ください

👇

https://kakuyomu.jp/works/1177354054881541503/episodes/1177354054883452843


solarplexuss「え~


そこをなんとか


今すぐ説明して」


ソーラー「簡単に言うと


構造体は変数の型に相当し


構造体宣言を行うことにより


構造体


つまり


変数の型



自分で作製することになります


そして


構造体変数宣言を行い


構造体変数を作製することは


その構造体の型(変数の型)の


構造体変数(変数)


を作製することに相当するんです


構造体変数を作製すると同時に


構造体変数のメンバ変数


というものが自動的に生成されます」


solarplexuss「全然わかりませ~ん???」


ソーラー「はは


まだまだ


分かりにくいかな?


それでは


具体例を見ていきましょう


まずは


構造体を作製するところからはじめてみようよ」





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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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