さあC言語(DXライブラリ)を使って超繊細、美麗、箱庭シューティングゲームを作ってみましょう 超初心者向けです 0.367
飛行機のデータを一括して 1つの構造体変数で管理してみよう そのために構造体を作製することになります
飛行機のデータを一括して 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「全然わかりませ~ん???」
ソーラー「はは
まだまだ
分かりにくいかな?
それでは
具体例を見ていきましょう
まずは
構造体を作製するところからはじめてみようよ」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます