int hassyasareru_RuRunotama[1];によって生成される 配列変数 hassyasareru_RuRunotama[0]の説明です


ソーラー「さあ だいぶ進んできたね


さて 


お次は



//👇🌞🐋🐋🐋🐋🐋🐋敵の飛行機ルルの弾のサブ設定です🐋🐋🐋🐋🐋🐋


int RuRunotama_count[1][10];


for (int i = 0; i < 1; i = i + 1) {


for (int j = 0; j < 10; j = j + 1) {


RuRunotama_count[i][j] = 0;


}


}


int RuRunotama_tsix[1][10]; //🌞🌞🌞 RuRunotama_tsix[i][j]には発射される敵の弾[i][j]の発射される位置のx座標が代入されることになります tは弾、sは最初、iは位置、xはx座標を表しています


for (int i = 0; i < 1; i = i + 1) {


for (int j = 0; j < 10; j = j + 1) {


RuRunotama_tsix[i][j] = 0;


}


}


int hassyasareru_RuRunotama[1];



for (int i = 0; i < 1; i++) {


hassyasareru_RuRunotama[i] = 0;


}




//👆🌞🐋🐋🐋🐋🐋🐋敵の飛行機ルルの弾のサブ設定です🐋🐋🐋🐋🐋🐋



の中の



int hassyasareru_RuRunotama[1];


によって生成される



配列

hassyasareru_RuRunotama[1]


配列変数は


hassyasareru_RuRunotama[0💖]



説明ですね」




マックス「なんにゃんだ 


👇

int hassyasareru_RuRunotama[1];



for (int i = 0; i < 1; i++) {


hassyasareru_RuRunotama[i] = 0;


}



👆



この初期化の仕方は?




for (int i = 0; i < 1; i++) {


hassyasareru_RuRunotama[i] = 0;


}


じゃなくても


hassyasareru_RuRunotama[0] = 0;




いいんじゃないのか?」


ソーラー「そこは気まぐれです」



マックス「なぬぅ」


ソーラー「実は


ルルを10体登場させようってなったときに




int hassyasareru_RuRunotama[1💖];



for (int i = 0; i < 1; i++) {


hassyasareru_RuRunotama[i] = 0;


}


と記述しておけば




int hassyasareru_RuRunotama[10💖💖];



for (int i = 0; i < 10💖💖; i++) {


hassyasareru_RuRunotama[i] = 0;


}




1を10に変えればいいだけなので



変更するのが簡単なんです



だから


int hassyasareru_RuRunotama[1];



for (int i = 0; i < 1; i++) {


hassyasareru_RuRunotama[i] = 0;


}




実行しておいたんだよ」



マックス「さっきのエピソードの場合と同じか」



ソーラー「それでは


配列変数

hassyasareru_RuRunotama[0]




働きがどうなっているか





🌞💖💖💖💖💖💖💖💖30.敵の飛行機ルルの弾の挙動の設定です💖💖💖💖💖💖💖💖


をみていきましょう


👇

👇

👇


//👇🌞💖💖💖💖💖💖💖💖30.敵の飛行機ルルの弾の挙動の設定です💖💖💖💖💖💖💖💖


//👇🌞🌞🌞新型 敵の飛行機ルルから敵の飛行機ルルの弾が10連射されるプログラムです





for (int i = 0; i < 1; i = i + 1) {



if (RuRu[i].life > 0 && GetRand(15) == 0 && RuRunotama[i][0].life == 0 && hassyasareru_RuRunotama[i] == 0) {


RuRunotama[i][0].x = RuRu[i].x - 5;


RuRunotama[i][0].y = RuRu[i].y + 120;


RuRunotama_tsix[i][0] = RuRunotama[i][0].x;


RuRunotama[i][0].life = 1;


hassyasareru_RuRunotama[i] = 1;


RuRunotama_count[i][0] = 20 + GetRand(25);//👈🌞🌞🌞敵の飛行機ルルRuRu[i]から10連射される最初の弾RuRunotama[i][0]と次弾RuRunotama[i][1]の間隔を調整することができます



}




for (int j = 0; j < 9; j++) {


if (RuRunotama_count[i][j] > 0) { RuRunotama_count[i][j] = RuRunotama_count[i][j] - 1; }



if (RuRunotama_count[i][j] == 0 && hassyasareru_RuRunotama[i] == j + 1) {


if (RuRunotama[i][j + 1].life == 0) {


RuRunotama[i][j + 1].x = RuRu[i].x - 5;


RuRunotama[i][j + 1].y = RuRu[i].y + 120;


RuRunotama_tsix[i][j + 1] = RuRunotama[i][j + 1].x;




RuRunotama[i][j + 1].life = 1;


hassyasareru_RuRunotama[i] = j + 2;


RuRunotama_count[i][j + 1] = 20 + GetRand(25);//👈🌞🌞🌞敵の飛行機ルルRuRunohikouki[i]から10連射される敵の飛行機ルルの弾RuRunotama[i][j + 1]と次に発射される弾RuRunotama[i][j + 2]の間隔を調整することができます


}


}


}




if (RuRunotama_count[i][9] > 0) { RuRunotama_count[i][9] = RuRunotama_count[i][9] - 1; }




if (RuRunotama_count[i][9] == 0 && hassyasareru_RuRunotama[i] == 10) {


hassyasareru_RuRunotama[i] = 0;


}


for (int j = 0; j < 10; j = j + 1) {


if (RuRunotama[i][j].life == 1) {

//🌞🌞🌞 RuRunotama[i][j].lifeに1が代入されていると敵の飛行機ルルの弾RuRunotama[i][j]がゲーム画面に表示されることになります RuRunotama[i][j].lifeに0が代入されていると敵の飛行機ルルの弾RuRunotama[i][j]がゲーム画面に表示されることはありません

DrawGraph(RuRunotama[i][j].x, RuRunotama[i][j].y, RuRunotama[i][j].graphichandle[0], TRUE);


RuRunotama[i][j].x = RuRunotama[i][j].x - 1;


if (RuRunotama_tsix[i][j] - RuRunotama[i][j].x > 765)

//🌞🌞🌞発射された敵の飛行機ルルの弾RuRunotama[i][j]の位置のx座標が発射されたときの最初の敵の飛行機ルルの弾の位置のx座標から🍑左へ🍑765を超えて離れると条件式RuRunotama_tsix[i][j] - RuRunotama[i][j].xは真の値1をとることになります

//🌞🌞🌞🌞🌞👆 RuRunotama_tsix[i][j]には敵の弾RuRunotama[i][j]が発射されたときの敵の飛行機ルルの弾RuRunotama[i][j]のいる位置のx座標を代入していたので敵の飛行機ルルの弾のx座標RuRunotama[i][j].xが敵の飛行機ルルの弾RuRunotama[i][j]が発射されたときの敵の飛行機ルルの弾RuRunotama[i][j]のいた位置から765ドット離れた時、条件式RuRunotama_tsix[i][j] - RuRunotama[i][j].x > 765は真の値1を持つことになります

RuRunotama[i][j].life = 0;


}


}


}



}



//👆🌞💖💖💖💖💖💖💖💖30.敵の飛行機ルルの弾の挙動の設定です💖💖💖💖💖💖💖💖





ソーラー「


この命令文では

敵の飛行機ルルから

普通の弾が

RuRunotama[0][0]

RuRunotama[0][1]

RuRunotama[0][2]

RuRunotama[0][3]

RuRunotama[0][4]

RuRunotama[0][5]

RuRunotama[0][6]

RuRunotama[0][7]

RuRunotama[0][8]

RuRunotama[0][9]



の順番で発射されますが


配列変数


hassyasareru_jibunnotama[0]



この順番で


発射されるように


するためにあります




for (int j = 0; j < 9; j++) {


if (RuRunotama_count[i][j] > 0) { RuRunotama_count[i][j] = RuRunotama_count[i][j] - 1; }



をみると


while{}文のブロック{}内の命令文が1回繰り返し実行されるごとに


RuRunotama_count[i][j]に格納される値が


1減っていきます


そして


最後は


0になるわけです



具体的には


RuRunotama[0][0]が発射されると


RuRunotama_count[0][0]に20 + GetRand(25)が代入されます




RuRunotama_count[0][0]に格納されている値が0になると


次の


RuRunotama[0][1]



発射されますが


発射される弾が


RuRunotama[0][1]になるように設定しているのが


この


hassyasareru_jibunnotama[0]なんです



このときhassyasareru_jibunnotama[0]に格納されている値は1です



RuRunotama_count[0][0]に格納されている値が0



hassyasareru_jibunnotama[0]に格納されている値が


1になったとき


RuRunotama_count[0][1]が発射されます」


マックス「じゃあ



RuRunotama_count[0][0]に格納されている値が0



hassyasareru_jibunnotama[0]に格納されている値が


1になったとき


RuRunotama_count[0][5]が発射されるようにすることもできるのか?」



ソーラー「もちろんです でも


そういう機会があるかな?^_^


微妙いかも」








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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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