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