自分の弾とは別に追加で自分の弾1 自分の弾2 自分の弾3 自分の弾4も発射したいのよん

続きです



ソーラー「Zボタンを押したら


自分の弾が発射され


発射された自分の弾が画面の外に出たとき


再び


Zボタンを押したら


自分の弾が発射されるようにすることができました


そのプログラムの


Characterの構造体宣言


struct Character {

int x;

int y;

int graphichandle;


};

//👆🌞Characterの構造体宣言です



struct Character {

int x;

int y;

int graphichandle;

int life;


};

//👆🌞Characterの構造体宣言です


に変更して


プログラムを再構成しました」


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

👇



#include "DxLib.h"


struct Character {

int x;

int y;

int graphichandle;

int life;

};

//👆🌞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.life=0;//👈🌞🌞🌞ここに注目


//👆🌞構造体変数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);





if (key & PAD_INPUT_A) {


if (jibunnotama.life == 0) {


jibunnotama.x = jibunnohikouki.x + 35;


jibunnotama.y = jibunnohikouki.y + 2;


jibunnotama.life = 1;

}

}


if (jibunnotama.life == 1) {


DrawGraph(jibunnotama.x, jibunnotama.y, jibunnotama.graphichandle, TRUE);


jibunnotama.x = jibunnotama.x + 10;


//👇この部分だけ付け加えました

if (jibunnotama.x > 640)


jibunnotama.life = 0;

//👆この部分だけ付け加えました


}



ScreenFlip();


ClearDrawScreen();


};



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


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


}


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

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

👇


https://www.youtube.com/watch?v=89FA9iLHTco


ソーラー「変数aをjibunnotama.lifeに置き換えても


プログラムの実行結果はかわらないね」



solarplexuss「ちょっと


飛行機が左端の方にいるとき


自分の弾の発射された後


次の自分の弾が


発射されるまで


時間がかかって


間延びしている気がするね」


マックス「


Zボタンを押したら


自分の弾が発射され


発射された自分の弾が画面の外に出たとき


再び


Zボタンを押したら


自分の弾が発射されるようになる仕組みだから


ゲーム画面の左端に飛行機がいると


自分の弾が発射されても


ゲーム画面の右端に


自分の弾がたどり着いて


自分の弾が画面の外に出るのに


時間がかかるから


当然


前に


自分の弾が発射されてから


次に


自分の弾が発射されるまでに


時間がかかる


ぽつっ



自分の弾が発射されてから


ぽつっ



再び


自分の弾が発射されるわけだ


趣きがあるじゃないか


なあ」


solarplexuss「ねえ 


飛行機が左端にいても


もうちょっとこう


連続して弾が発射されないかな?」


マックス「さらに


プログラムにアップデートを加えようというのか?」


solarplexuss「えっとね


Zボタンを押したら


自分の弾が発射され


発射された自分の弾が画面の外に出たとき


再び


Zボタンを押したら


自分の弾が発射される


だから


飛行機が左端にいると


自分の弾が発射されてから


次に


自分の弾が発射されるまでに


時間がかかるんでしょう


そこは変更しなくてもいいと思うのよん」


マックス「えぃぃ


変更しなくていいんかーい



それだと


ゲーム画面の左端に飛行機がいると


自分の弾が発射されても


ゲーム画面の右端に


自分の弾がたどり着いて


自分の弾が画面の外に出るのに


時間がかかるから


当然


前に


自分の弾が発射されてから


次に


自分の弾が発射されるまでに


時間がかかる


結局



ぽつっ・・・


ぽつっ・・・



自分の弾がゲーム画面に表示されることになるんじゃないか?」


solarplexuss「げへへ


その通り


だけどいい方法をおもいついちゃったんだ」


マックス「いい方法?」


solarplexuss「



ゲーム画面の左端に飛行機がいると


自分の弾が発射されても


ゲーム画面の右端に


自分の弾がたどり着いて


自分の弾が画面の外に出るのに


時間がかかるから


当然


前に


自分の弾が発射されてから


次に


自分の弾が発射されるまでに


時間がかかるんだけど


それは


その自分の弾だけの話だけなんじゃない」


マックス「アイイーン?はいぃ?」


solarplexuss「


他に


その自分の弾

とは別の


自分の弾1

自分の弾2

自分の弾3

自分の弾4



用意しておいて


Zボタンを押したら


           ☺️とりあえず☺️


次々と時間を空けて


自分の弾

自分の弾1

自分の弾2

自分の弾3

自分の弾4


発射されるようにするんだ


自分の弾1

自分の弾2

自分の弾3

自分の弾4

がゲーム画面に表示されていても


自分の弾が画面の外に出ていたら


Zボタンを押したら


自分の弾


が発射されるようにするのじゃ



自分の弾3

自分の弾4

がゲーム画面に表示されていても


自分の弾

自分の弾1

自分の弾2


がゲーム画面の外に出ていたら


Zボタンを押したら


自分の弾

自分の弾1

自分の弾2


が発射されるようにするのじゃ


そうすれば


たしかに


ゲーム画面の左端に飛行機がいると


自分の弾が発射されても


ゲーム画面の右端に


自分の弾がたどり着いて


自分の弾が画面の外に出るのに


時間がかかるから


当然


前に


自分の弾が発射されてから


次に


自分の弾が発射されるまでに


時間がかかるんだけど

追加で


自分の弾1

自分の弾2

自分の弾3

自分の弾4


が発射されてゲーム画面に表示されているから


ゲーム画面は


寂しくな〜い


寂しくな〜い



自分の弾1

自分の弾2

自分の弾3

自分の弾4


が発射されても


ゲーム画面の右端に


自分の弾1

自分の弾2

自分の弾3

自分の弾4


がたどり着いて


自分の弾1

自分の弾2

自分の弾3

自分の弾4


が画面の外に出るのに


時間がかかるから


当然


前に


自分の弾1

自分の弾2

自分の弾3

自分の弾4


が発射されてから


次に


自分の弾1

自分の弾2

自分の弾3

自分の弾4


が発射されるまでに


時間がかかるんだけど


なんやかんやで


Zボタンを押しつづけていたら


自分の弾



また発射されることになるじゃな〜い


加えて


ゲーム画面の右端に


自分の弾1

自分の弾2

自分の弾3

自分の弾4


がたどり着いたら


また


自分の弾1

自分の弾2

自分の弾3

自分の弾4



発射されて


ゲーム画面に


自分の弾1

自分の弾2

自分の弾3

自分の弾4



表示されるから


ゲーム画面は


自分の弾だらけで


賑やかになるんじゃないかなあ」


マックス「おおん


すごいな


あっさりと


いいアイデアをおもいつくじゃないか?


あとは


このアイデアを


どうプログラムで表現するかだが・・・」




           😊😋面白トピックのコーナーです😛😉


このように


とても素晴らしいけど


実現不可能っぽいアイデアが


おもいつかれることがあります



この実現不可能っぽいアイデアには


とてつもない価値があります



案外


実現不可能っぽいアイデアでも


形にしていくうちに


実現されて行く場合があります



ですが


それも


その実現不可能っぽいアイデアをおもいついたからこそ


実現できたのです


今 流行りの量子コンピューターも


もともとは


とても素晴らしいけど


実現不可能っぽいアイデア


だったのですが


今では製品化までされています


量子コンピュータを完成させるには


機械のエンジニアだけでなく


まったく関係がなさそうな


様々な分野の方の協力が必要となるのですが・・・



ソーラー「え 何の話だったっけ?」






































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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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