【アクツクMV】10_ランダムに敵を複数地点から生成したい
方針
- ランダム値を共通変数に代入
- 変数によって、スポーンポイントを判定
ランダムの取得
ランダムを入れる変数用意
素材→変数で共通変数を用意
これであれば、どこからでもランダム値にアククセス可能になる
画像もモーションもない空のオブジェクトを用意
重力は無効にするのを忘れないように
random(0-4)アクション
ランダム値を共通変数に代入する
今回は0~4のランダムで
random(0-4) → wait
一定時間経過で遷移
この時間がスポーン間隔になる
あとあと変数にして可変できるようにするのも良さそう
waitアクション
wait → random(0-4)
とくに設定は無し
シーンに配置
画面の隅っこに配置
これでランダム値が発生する
スポーンポイントを作る
ここから、ランダム変数で判定して敵を生成する
敵生成時の敵の向きは、スポーンポイントの向きと同じにするよ想定
アニメーションを用意
左右の向きが欲しいだけなので、アニメ自体は1フレームで当たり判定等は無し
オブジェクトを用意
今回は右向きの用意。左向きはモーションの向きをleftにするだけ
flagを用意
毎回1体だけ生成したいのでflagを用意
stand_byアクション
特に設定なし。重力は無効にしておく
モーションの向きの設定が大事(他のアクションも同じにしておく)
stand_by → spawn
ランダム値とこのスポーンポイント番号が同じかどうか判定
今回は↓のように設定してみた
- 右向きスポーンポイント…1
- 左向きスポーンポイント…2
同時に、1回だけ処理flagがoffかどうか判定
詳細は
spawnアクション
敵を生成。生成時の向きはスポーンポイントと同じ向き
そして、1回だけ処理flagをonにする
詳細は
spawn → stand_by
wait → stand_by
一定時間経過で戻ります
waitアクション
これは、ランダム値がスポーンポイント番号と異なった場合の処理
敵生成はしないけど、処理を回すためflagを制御
詳細は
stand_by → wait
ランダム値とこのスポーンポイント番号が異なるかどうか判定
同時に、1回だけ処理flagがonかどうか判定
ということは…もしランダムで同じ数字が連続しても、敵は連続で生成されないのか…まっ、いっかw
詳細は