2016-11-20 30 views
0

我正在Android Studio(Java)中開發遊戲。在我的項目中有一種方法用於生成對象的實例並將它們填充到ArrayList中。基本上它是這樣做的,它只是讓「敵方太空船」向玩家「隨機」射擊。換句話說,在每一幀之後,該方法會生成一個隨機數,如果數字爲1,那麼ArrayList會被一個「激光爆炸」對象實例填充,這使得敵方太空飛船可以發射。更有效的方法然後切換到Android開發(Java)

我的問題是:是否有更好更便宜的方法來模擬這種事件?或者也許有辦法讓這種現有的方法更有效並且成本更低?

這裏是方法:

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

您只有一種情況? if語句有什麼問題? –

+0

是的,我只是檢查數字是否爲1,所有其他情況都意味着什麼都不應該發生。那麼使用if語句會更有效? – Kasparas

+0

它更乾淨,是的。字節碼可能會有所不同,但在這方面幾乎沒有區別,你有什麼 –

回答

1

正如其他人所說,因爲你只有一個情況下,你應該使用,而不是一個「開關」的「if」語句 - 有可能不會性能提升,但代碼會更容易閱讀。

我認爲對性能影響最大的變化是使隨機變爲靜態(我將它作爲靜態最終)。這樣,您將爲整個應用程序構造Random,而不是每次調用該方法。這節省了對象構建和垃圾收集的時間。

相關問題