2016-11-20 3 views
0

私はAndroid Studio(Java)でゲームを開発しています。私のプロジェクトには、オブジェクトのインスタンスを生成してArrayListに取り込むためのメソッドがあります。基本的には、「敵の宇宙船」をプレイヤーに「無作為に」撃てさせるだけです。つまり、フレームごとにメソッドが乱数を生成し、その数が1であれば、ArrayListには、敵の宇宙船を撮影する「レーザーブラスト」オブジェクトインスタンスが設定されます。もっと効果的な方法を次にAndroid開発を切り替えてください(Java)

私の質問になります:この種のイベントをシミュレートする方がコストがかからない方法はありますか?あるいは、この既存の方法をより有益かつ低コストにする方法があるでしょうか?ここで

方法である:他の人が述べたように、あなただけの1ケースを持っているので、あなたはおそらく、「場合」の文の代わりに「スイッチ」を使用する必要があり、

public static void generateRandomNumber(ArrayList<EnemyShipLaserBlast> listOfLaserBlasts, int x, int y) 
{ 
    Random random = new Random(); 
    int number = random.nextInt(50); 
    switch (number) { 
     case 1: 
      listOfLaserBlasts.add(new EnemyShipLaserBlast(x, y)); 
      break; 
     default: 
      //do nothing 
    } 
} 
+0

あなたは1つのケースしか持っていませんか? if文の何が問題なのですか? –

+0

はい、私は数字が1であるかどうかをチェックしています。他の場合は何も起こらないことを意味します。 if文を使用する方がより効果的でしょうか? – Kasparas

+0

きれいですね。バイトコードは違うかもしれませんが、そこに少しでも違いがありません。 –

答えて

1

- おそらくそこではありませんパフォーマンスは向上しますが、コードを読みやすくなります。

パフォーマンスに最も影響を与える変更は、ランダムを静的にすることです(私は静的な最終にします)。そうすれば、メソッドが呼び出されるたびにではなく、アプリケーション全体に対して一度ランダムを構築することになります。これにより、オブジェクトの構築とガベージコレクションの両方で時間が節約されます。

関連する問題