さあC言語(DXライブラリ)を使って超繊細、美麗、箱庭シューティングゲームを作ってみましょう 超初心者向けです 0.367
飛行機の移動に応じて 弾も 一緒に くっついて移動するように画像を表示してみよう
飛行機の移動に応じて 弾も 一緒に くっついて移動するように画像を表示してみよう
ソーラー「そうなんです
次は
飛行機の移動に応じて
弾も
一緒に
くっついて移動するようにしてみましょう」
マックス「なはは
そのプログラムは俺に任せろ」
飛行機の移動に応じて
弾も
一緒に
くっついて移動するプログラムはこちらです
👇
#include "DxLib.h"
struct Character {
int x;
int y;
int graphichandle;
};
//👆🌞Characterの構造体宣言です
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
ChangeWindowMode(TRUE); // ウインドウモードに設定します
if (DxLib_Init() == -1) // DXライブラリを初期化処理しています
{
return -1; // DXライブラリの初期化に失敗したら直ちにプログラムを終了します
}
SetDrawScreen(DX_SCREEN_BACK);//👈🌞SetDrawScreen関数です
struct Character jibunnohikouki;
//👆🌞jibunnohikoukiの構造体変数宣言です
jibunnohikouki.x = 0;
jibunnohikouki.y = 0;
jibunnohikouki.graphichandle = LoadGraph("画像データ\\ソーラーが描いた飛行機.bmp");
//👆🌞構造体変数jibunnohikoukiのメンバ変数の初期化を行っています
struct Character jibunnotama;
//👆🌞jibunnotamaの構造体変数宣言です
jibunnotama.x = 0;
jibunnotama.y = 0;
jibunnotama.graphichandle = LoadGraph("画像データ\\自分の弾.bmp");
//👆🌞構造体変数jibunnotamaのメンバ変数の初期化を行っています
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) jibunnohikouki.y = jibunnohikouki.y - 4;
if (key & PAD_INPUT_DOWN) jibunnohikouki.y = jibunnohikouki.y + 4;
if (key & PAD_INPUT_LEFT) jibunnohikouki.x = jibunnohikouki.x - 4;
if (key & PAD_INPUT_RIGHT) jibunnohikouki.x = jibunnohikouki.x + 4;
DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle, TRUE);
DrawGraph(jibunnohikouki.x+35, jibunnohikouki.y+20, jibunnotama.graphichandle, TRUE);
ScreenFlip();
ClearDrawScreen();
};
DxLib_End(); // DXライブラリの使用を終了します DXライブラリの使用しているメモリ領域が解放されます
return 0; // プログラムを終了します
}
デバッグなしで実行をしてから一度プログラムを終了し
生成されたexeファイルをハードディスクから探し出しクリックする方法により得られたプログラムの実行結果はこちらです
👇
https://www.youtube.com/watch?v=2gXJI4yS1zw
マックス「ふはは
やったぜぃ」
solaroleuss「これ いったいどうやったの?
さっきのエピソードのプログラムと何が違うのかがわからないんだけど?」
マックス「わはは
while{}文のブロック{}内の
飛行機の画像データを表示する命令文
と
自分の弾の画像データを表示する命令文
👇
DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle, TRUE);
DrawGraph(jibunnohikouki.x+35, jibunnohikouki.y+20, jibunnotama.graphichandle, TRUE);
👆
に注目するのだ」
solarplexuss「ほええ?」
マックス「さっきのエピソードのプログラムでは
飛行機の画像データを表示する命令文
と
自分の弾の画像データを表示する命令文
は
DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle, TRUE);
DrawGraph(jibunnotama.x, jibunnotama.y, jibunnotama.graphichandle, TRUE);
になっていただろう?
今のプログラムでは
自分の弾の画像データを表示する命令文
DrawGraph(jibunnohikouki.x, jibunnohikouki.y, jibunnohikouki.graphichandle, TRUE);
を
DrawGraph(jibunnohikouki.x+35, jibunnohikouki.y+20, jibunnotama.graphichandle, TRUE);
に変更したのだ
jibunnotama.xをjibunnohikouki.x+35
jibunnotama.yをjibunnohikouki.y+20
に変更することにより
自分の弾の画像データは
飛行機の画像データが表示される位置から
右に35ドット
下に20ドット
ずれた点から表示されることになったわけだ」
solarplexuss「おお 賢~い」
マックス「ふはは
まあ まだ
飛行機の移動に応じて
弾も
一緒にくっついて移動するようになっただけで
飛行機から弾が発射されるようになったわけではないがな」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます