我有一个球落在屏幕上的游戏。问题是,球只会向右走。我认为问题在于从 LR 方法到主游戏循环的过渡。我创建了一个变量,它采用 LR 方法并在每秒刷新和清除画布的循环中运行它。这是代码:
package cats;
public class BeanDrop {
public static void main(String[] args) throws InterruptedException {
mainGameLoop();
}
public static void mainGameLoop() throws InterruptedException{
double x = .5;
double y = .9;
while (true){
int choice = LR();
arena();
ball(x , y);
if (choice == 1){
// right outcome
x = x + .1;
}
else if(choice == 2){
//left outcome
x = x -.1;
}
y = y - .1;
Thread.sleep(1000);
StdDraw.clear();
}
}
public static void arena(){
StdDraw.picture(.5, .5, "balldrop.jpeg");
}
private static int LR(){
int choice = ((int) Math.random() * 2 + 1);
return choice;
}
public static void ball(double x , double y){
StdDraw.picture(x, y, "ball.jpeg",.05,.05);
}
}
看看这个:如何在 Java 中生成特定范围内的随机整数?
它基本上所说的是使用它来获取一个随机数:
Random rand;
// nextInt is normally exclusive of the top value,
// so add 1 to make it inclusive
int randomNum = rand.nextInt((max - min) + 1) + min;
return randomNum;
所以对你来说,你可以使用它:
private static int LR(){
int choice = rand.nextInt(2) + 1;
return choice;
}
编辑:您必须创建随机的实例,并将其命名为代码顶部的rand:
private Random rand;
在初始化游戏循环之前,请准备好:
rand = new Random();