我使用此方法获取屏幕外的随机位置来生成所有僵尸。
public void initZombie(){
for(int i = 0; i < 100; i++){
int randomXSpawn = (int) Math.random() * -300 + -50;
int randomYSpawn = (int) Math.random() * -100 + 800;
int[][] spawn = {{randomXSpawn,randomYSpawn}};
for(int j = 0; j < spawn.length; j++){
zombie.add(new Zombie(spawn[j][0],spawn[j][1]));
}
}
}
我遇到的问题是,获取随机位置的两个整数仅运行一次,因此每个僵尸都会在彼此内部完全相同的位置生成。我怎样才能让整数运行多次,以便僵尸在不同的位置产卵?我尝试将它们放在 run() 方法中,然后运行两次,以便第一个僵尸在一个位置生成,然后其他 99 个僵尸在彼此内部的另一个位置生成。
最佳答案
您正在类型转换Math.random()
为对该值取整的整数。自 Math.random()
生成一个 double 值 0 <= x < 1
,它总是四舍五入为 0。这就是为什么你会得到完全相同的生成位置。
您需要在类型转换中添加括号:
int randomXSpawn = (int) (Math.random() * -300 + -50);
int randomYSpawn = (int) (Math.random() * -100 + 800);
关于Java:多次设置int值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16202896/