我正在 Android Studio (Java) 中开发游戏。在我的项目中,有一个方法用于生成对象的实例并将它们填充到 ArrayList 中。基本上它的作用就是让“敌方 spaceship ”“随机”向玩家射击。换句话说,在每一帧之后,该方法都会生成一个随机数,如果该数字为 1,则 ArrayList 中将填充一个“激光爆炸”对象实例,该实例使敌方 spaceship 进行射击。
我的问题是:是否有更好且成本更低的方法来模拟此类事件?或者也许有一种方法可以使现有的方法更有效且成本更低?
方法如下:
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
}
}
最佳答案
正如其他人提到的,由于您只有一种情况,您可能应该使用“if”语句而不是“switch” - 可能不会有性能提升,但代码会更容易阅读。
我认为对性能影响最大的更改是使随机成为静态(我会将其设为静态最终)。这样,您将为整个应用程序构建一次 Random,而不是每次调用该方法时。这节省了对象构造和垃圾收集的时间。
关于java - Android开发中比Switch更有效的方法(Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40705565/