ゲームのランダムウェーブシステムに取り組んでいます。アイデアは、1000 ポイントごとに、約 50 の可能性から移動パターンが選択されるというものです。これは、選択したアイテムの速度、方向、およびイメージに影響します。うまくいくと思われる方法を考案しましたが、これを実行するのに多くのメモリが必要になるかどうかはわかりません。
public class engine extends MovieClip {
private var countK:Number = 0;
private var newWave:Boolean = true;
public function engine() {
stage.addEventListener(Event.ENTER_FRAME, update);
}
private function update():void {
checkCount();
checkNew();
}
private function checkCount():void {
if (count => 1000) {
newWave=true;
count = 0;
}
}
private function checkNew():void {
if(newWave) {
randomNumber();
newWave=false
}
}
上記は、1000ポイントごとに乱数を生成するという私の簡単なアイデアです。ポイントは好きなように追加できます (「スコア」に 20 を追加し、同時に「カウント」に 20 を追加するだけです)。checkNew で乱数関数を使用できる場合は、別の関数を使用するつもりはありません。単純に読みやすくするためです。
var newEnemy:mEnemy =new mEnemy();
stage.addChild(newEnemy);
EnemyArray.push(newEnemy);
trace(EnemyArray.length);
上記は、mEnemy のインスタンスをステージに追加できるコードです。今、私が解き始めているところですが、乱数を mEnemy の動作を変更する実行可能な方法に変換するにはどうすればよいですか?
mEnemy クラス内に 50 個の関数を用意し、addChild の直前に newEnemy.WAVEfuncton1(); のようなことを行うのが賢明ですか? ? その場合、if ステートメントを大量に記述せずに、関数を選択するようにコードを保存できますか?
それ以外の;
if (randomN==1) {
newEnemy.WAVEfunction1();
}
if (randomN==2) {
newEnemy.WAVEfunction2();
}
....
僕にできる;
newEnemy.WAVEfunction[randomN]();
これはまた、敵の内部で関数を使用することが最善のアイデアであると想定しています。代わりに、エンジン クラス内にビヘイビアを配置する方がよいでしょうか?
ご覧のとおり、私はプログラマーではありません。私はこの種の考え方に非常に慣れていないので、ゲームのパフォーマンスを損なうような間違いを犯したくありません (悪い習慣を身につけることは言うまでもありません!)。
時間を割いてこの質問を読んでくれたなら、ありがとう!私の無知を許していただけるなら、さらに感謝します!