2012-01-13 5 views
0

私は瞬間に簡単なアンドロイドゲームを作っていて、どうやって敵のスポンサーを最適化できるのか不思議に思っていました。敵系システムアンドロイドゲーム

現時点では、レベルが上がるにつれて、敵を産んでほしいだけです。ゲームは、何もないと思う。一度に20個ずつ。

だから私のアプローチがある:私は(同じクラスから)すべての私の生まれた敵を格納するのArrayListを持って

ArrayList<Enemy> enemies = new ArrayList(); 

。 は、今私は、次のものがメインのアップデート機能に:

for (Enemy en : enemies){ 
     en.update(); 
    } 

これは、位置更新のためになる、今私は多分敵のウィッヒを削除することができるかを決定するためのサイクルを介して第2の時間を実行する必要があり、それは破壊されているからです。

これは単純なゲームで最も一般的で効果的な方法ですか?

答えて

0

"dead"または "disposed"と呼ばれる敵にプロパティを追加してみてください。 は、だから、やって敵を解放する必要があるの経過を追うことができます。

for (Enemy en : enemies) 
{ 
    if (en.isDead() == true) 
    { 
     // Remove en from enemies. 
     // You'll probably need to use a "for" here keeping track of the last 
     // element when deleting one. So you can continue checking/updating 
     // enemies. 
     continue; 
    } 
    en.update(); 
} 

は、あなたがしたくない場合にエフェクトを追加することができ、それ画面から簡単に「消える」へ:

for (Enemy en : enemies) 
{ 
    if (en.isDead() == true) 
    { 
     en.startFadeOut(); 
    } 
    else if (en.isFadeFinished()) 
    { 
     // guessing some alpha channel property. 
     en.setAlpha(en.getAlpha() - 0.1 * ticks); 
     if (en.getAlpha() <= 0) 
     { 
      en.setFadeFinished(true); 
     } 
    } 
    en.update(); 
} 

もちろん、このロジックを敵クラスの更新の中に入れる必要があります。これは単なるアイデアです。

+0

似たようなものが私の心の中を通りました。だから私は、敵の処理のためのArrayListメソッドは問題ないと思いますか? EDIT:フェードアウトのあるチップをありがとう。それを考慮します! – puelo

+0

@pueloはい、シンプルですが機能的です。それを働かせるには複雑すぎるものは必要ありません。単純にする。ところで、私はちょうどポストを編集した、フェードのアイデアを確認します。 – WoLfulus

+0

申し訳ありません。 5分が過ぎるとすぐにあなたの答えが正しいとチェックします。クイックヘルプに感謝します。 – puelo