さあC言語(DXライブラリ)を使って超繊細、美麗、箱庭シューティングゲームを作ってみましょう 超初心者向けです 0.367
int hassyasareru_option_nekonotama_lazer = 0;によって生成される変数hassyasareru_option_nekonotama_lazer の説明です
int hassyasareru_option_nekonotama_lazer = 0;によって生成される変数hassyasareru_option_nekonotama_lazer の説明です
次は
//👇🌞🐋🐋🐋🐋🐋🐋オプション猫のレーザー弾のサブ設定です🐋🐋🐋🐋🐋🐋
int option_nekonotama_lazer_tsix[11];//🌞🌞🌞 option_nekonotama_lazer_tsix[i]にはオプション猫から発射されるレーザー弾の最初の位置のx座標が代入されることになります tは弾、sは最初、iは位置、xはx座標を表しています
for (int i = 0; i < 11; i++) {
option_nekonotama_lazer_tsix[i] = 0;
}
int option_nekonotama_lazer_count[11];//🌞🌞🌞ここでint型の変数option_nekonotama_lazer_ count[i] (0<=i<=10)を作製し0で初期化しました
for (int i = 0; i < 11; i++) {
option_nekonotama_lazer_count[i] = 0;
}
int hassyasareru_option_nekonotama_lazer = 0;
//👆🌞🐋🐋🐋🐋🐋🐋オプション猫のレーザー弾のサブ設定です🐋🐋🐋🐋🐋🐋
の中の
int hassyasareru_option_nekonotama_lazer = 0;
によって生成される変数
hassyasareru_option_nekonotama_lazer
の説明です」
マックス「俺はわんこ
だが
ワンワン!
この
int型の変数
hassyasareru_option_nekonotama_lazerは?
発射されるオプション猫の弾レーザー?」
ソーラー「再び
🌞💖💖💖💖💖💖💖💖10.オプション猫のレーザー弾の挙動の設定の部分です💖💖💖💖💖💖💖💖
をみていきましょう
👇
👇
👇
//👇🌞💖💖💖💖💖💖💖💖10.オプション猫のレーザー弾の挙動の設定の部分です💖💖💖💖💖💖💖💖
//👇🌞🌞🌞新型 オプション猫から💖レーザー弾💖が10連射されるプログラムです
//👇新たに11個目のレーザー弾option_nekonotama_lazer[10]の登場です
if (option_neko.life > 0)
if (option_nekonotamamode == 1)
if (option_nekonotama_lazer[10].x > 640)
if (key & PAD_INPUT_A) {
if (option_nekonotama_lazer[0].life == 0 && hassyasareru_option_nekonotama_lazer == 0) {
option_nekonotama_lazer[0].x = option_neko.x + 10;
option_nekonotama_lazer[0].y = option_neko.y + 10;
option_nekonotama_lazer_tsix[0] = option_nekonotama_lazer[0].x;
option_nekonotama_lazer[0].life = 1;
hassyasareru_option_nekonotama_lazer = 1;
option_nekonotama_lazer_count[0] = 30;//👈連射される自分のレーザー弾の最初の弾と次弾の間隔を調整することができます
}
}
for (int i = 0; i < 10; i++) {
if (option_nekonotama_lazer_count[i] > 0) { option_nekonotama_lazer_count[i] = option_nekonotama_lazer_count[i] - 1; }
if (option_nekonotama_lazer_count[i] == 0 && hassyasareru_option_nekonotama_lazer == i + 1) {
if (option_nekonotama_lazer[i + 1].life == 0) {
option_nekonotama_lazer[i + 1].x = option_neko.x + 10;
option_nekonotama_lazer[i + 1].y = option_neko.y + 10;
option_nekonotama_lazer_tsix[i + 1] = option_nekonotama[i + 1].x;
option_nekonotama_lazer[i + 1].life = 1;
hassyasareru_option_nekonotama_lazer = i + 2;
option_nekonotama_lazer_count[i + 1] = 30;
}
}
}
if (option_nekonotama_lazer_count[10] > 0) { option_nekonotama_lazer_count[10] = option_nekonotama_lazer_count[10] - 1; }
if (jibunnotama_lazer_count[10] == 0 && hassyasareru_option_nekonotama_lazer == 11) {
hassyasareru_option_nekonotama_lazer = 0;
}
for (int i = 0; i < 11; i = i + 1) {
if (option_nekonotama_lazer[i].life == 1) {
//🌞🌞🌞 option_nekonotama_lazer[i].lifeに1が代入されているとオプション猫のレーザー弾option_nekonotama_lazer[i]がゲーム画面に表示されることになります option_nekonotama_lazer[i].lifeに0が代入されているとオプション猫のレーザー弾option_nekonotama_lazer[i]がゲーム画面に表示されることはありません
DrawGraph(option_nekonotama_lazer[i].x, option_nekonotama_lazer[i].y, option_nekonotama_lazer[i].graphichandle[0], TRUE);
option_nekonotama_lazer[i].x = option_nekonotama_lazer[i].x + 1;
if (option_nekonotama_lazer[i].x - option_nekonotama_lazer_tsix[i] > 640)
//🌞🌞🌞発射されたオプション猫のレーザー弾option_nekonotama_lazer[i]の位置のx座標が発射されたときの最初のオプション猫のレーザー弾option_nekonotama_lazer[i]の位置のx座標から🍑左へ🍑640を超えて離れると条件式option_nekonotama_lazer[i].x - option_nekonotama_lazer_tsix[i]は真の値1をとることになります
//🌞🌞🌞🌞🌞👆 option_nekonotama_lazer_tsix[i]にはオプション猫のレーザー弾option_nekonotama_lazer[i]が発射されたときのオプション猫のレーザー弾option_nekonotama_lazer[i]のいる位置のx座標を記憶していたのでoption_nekonotama_lazer[i].xがオプション猫の弾option_nekonotama_lazer[i]が発射されたときのオプション猫のレーザー弾option_nekonotama_lazer[i]のいる位置から640ドット離れた時、条件式option_nekonotama_lazer[i].x- option_nekonotama_lazer_tsix[i] > 640は真の値1を持つことになります
option_nekonotama_lazer[i].life = 0;
}
}
//👆🌞🌞🌞新型 オプション猫から💖レーザー弾💖が10連射されるプログラムです
//👆🌞💖💖💖💖💖💖💖💖10.オプション猫のレーザー弾の挙動の設定の部分です💖💖💖💖💖💖💖💖
ソーラー「
この命令文では
オプション猫から
レーザー弾が
option_nekonotama_lazer[0]
option_nekonotama_lazer[1]
option_nekonotama_lazer[2]
option_nekonotama_lazer[3]
option_nekonotama_lazer[4]
option_nekonotama_lazer[5]
option_nekonotama_lazer[6]
option_nekonotama_lazer[7]
option_nekonotama_lazer[8]
option_nekonotama_lazer[9]
option_nekonotama_lazer[10]
の順番で発射されますが
hassyasareru_option_nekonotama_lazerは
この順番で
発射されるように
するためにあります
for (int i = 0; i < 10; i++) {
if (option_nekonotama_lazer_count[i] > 0) { option_nekonotama_lazer_count[i] = option_nekonotama_lazer_count[i] - 1; }
をみると
while{}文のブロック{}内の命令文が1回繰り返し実行されるごとに
option_nekonotama_lazer_count[i]に格納される値が
1減っていきます
そして
最後は
0になるわけです
具体的には
option_nekonotama_lazer[0]が発射されると
option_nekonotama_lazer_count[0]に30が代入されます
option_nekonotama_lazer_count[0]に格納されている値が0になると
次の
option_nekonotama_lazer[1]
が
発射されますが
発射される弾が
option_nekonotama_lazer[1]になるように設定しているのが
この
hassyasareru_option_nekonotama_lazerなんです
このときhassyasareru_option_nekonotama_lazerに格納されている値は1です
option_nekonotama_lazer_count[0]に格納されている値が0
で
hassyasareru_option_nekonotama_lazerに格納されている値が
1になったとき
option_nekonotama_lazer[1]が発射されます」
マックス「じゃあ
option_nekonotama_lazer_count[0]に格納されている値が0
で
hassyasareru_option_nekonotama_lazerに格納されている値が
1になったとき
option_nekonotama_lazer[5]が発射されるようにすることもできるのか?」
ソーラー「一応 できるけど微妙いかも~(*^▽^*)
どうかな?
あまり意味ないかも」
マックス「なんでだ?」
ソーラー「うーん
option_nekonotama_lazer[1]
と
option_nekonotama_lazer[5]
は
全く同じレーザーの画像がもちいられているので
option_nekonotama_lazer[1]
の代わりに
option_nekonotama_lazer[5]
を
発射させても
あまり意味なんじゃないかな?」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます