У меня есть эта игра, где мяч падает на экран. Проблема в том, что мяч только идет вправо. Я считаю, что проблема заключается в переходе от метода LR к основному игровому циклу. Я создал переменную, и она берет метод LR и запускает его внутри цикла, который обновляет и очищает холст каждую секунду. Вот код:Java Bean Drop, Only Going Right
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);
}
}
вы забыли + мин в конце .. . должен быть int choice = rand.nextInt (2) + 1; –
@RomainHippeau Нет, это сгенерирует (случайно) два разных ответа, хотя, я думаю, вы полуправильно, потому что это будет генерировать 0 или 1, поэтому я отредактирую ответ, чтобы отразить это, спасибо :) –
просто применяя формула в ссылке. Мы хотим сгенерировать 1 или 2, а не 0 или 1, чтобы вы вернули, потому что сейчас правильно. –