プログラムは以下のようにしようと考えています(まだ実際は1ステージ分もできていません)。
(下準備) *main(描画関係等は省略) gosub *自機 gosub *敵出現 gosub *敵処理 goto *main *自機 操作や攻撃 *敵出現 特定の時間毎に敵スプライトが出現 それぞれの敵がどの種類の敵(敵1,敵2,敵3)であるかを決定(ランダムではなく上の時間によって固定) 敵の種類毎に固有の耐久力などを設定 *敵処理 if 敵タイプ = 1 : gosub *敵1 if 敵タイプ = 2 : gosub *敵2 if 敵タイプ = 3 : gosub *敵3 被弾・消滅処理 *敵1 動き方の設定 gosub *攻撃A *敵2 動き方の設定 gosub *攻撃B *敵3 動き方の設定 gosub *攻撃C *攻撃A 弾の撃ち方の設定 *攻撃B 弾の撃ち方の設定 *攻撃C 弾の撃ち方の設定
敵が増えてきたときに攻撃パターンを使い回せるように、敵の動きと攻撃を分けています。
ここで、ステージ1には敵1と敵2を、ステージ2には敵1と敵3を出そうとした場合、どのように組むのが効率的でしょうか。
ステージ終了後にメニュー画面に戻るようにしたいと思います。
私なりに考えてみたのがこれです。
(自機や弾の画像の読み込みを含むゲーム全体の下準備) *menu if 特定の操作1 : stage = 1 : goto *S1 if 特定の操作2 : stage = 2 : goto *S2 goto *menu *S1 敵1・2の画像の読み込み goto *main *S2 敵1・3の画像の読み込み goto *main *main(描画関係等は省略) gosub *自機 gosub *敵出現 gosub *敵処理 gosub *ステージ終了処理 goto *main *自機 操作や攻撃 *敵出現 stageの値と特定の時間の組み合わせ毎に敵スプライトが出現 それぞれの敵がどの種類の敵(敵1,敵2,敵3)であるかを決定(ランダムではなくstageの値と上の時間によって固定) 敵の種類毎に固有の耐久力などを設定 *敵処理 if 敵タイプ = 1 : gosub *敵1 if 敵タイプ = 2 : gosub *敵2 if 敵タイプ = 3 : gosub *敵3 被弾・消滅処理 *ステージ終了処理 条件を満たせば変数の初期化などをして*menuへ *敵1 動き方の設定 gosub *攻撃A *敵2 動き方の設定 gosub *攻撃B *敵3 動き方の設定 gosub *攻撃C *攻撃A 弾の撃ち方の設定 *攻撃B 弾の撃ち方の設定 *攻撃C 弾の撃ち方の設定