我正在使用Android Studio(Java)开发游戏。在我的项目中,有一个方法用于生成对象的实例并将它们填充到ArrayList中。基本上它是做什么的,它只是制造了敌人的太空船"随机拍摄#34;播放器#34;换句话说,在每一帧之后,该方法生成一个随机数,如果该数字为1,则ArrayList由一个"激光爆炸填充"使敌人太空船射击的物体实例。
我的问题是:是否有更好,成本更低的方式来模拟此类事件?或者也许有一种方法可以使这种现有方法更有效,成本更低?
以下是方法:
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”语句而不是“switch” - 可能不会有性能提升,但代码会更容易阅读。< / p>
我认为对性能影响最大的变化是使Random变为静态(我会将其作为静态最终)。这样,您将为整个应用程序构造一次Random,而不是每次调用该方法。这节省了对象构建和垃圾收集的时间。