-3

ボールが画面に落ちるこのゲームがあります。問題は、ボールが右にしか行かないことです。問題は、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);
}
}
4

1 に答える 1

1

これを見てください: 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;
}

編集: Random のインスタンスを作成し、コードの先頭に rand という名前を付ける必要があります。

private Random rand;

そして、ゲームループを初期化する前にこれを用意してください:

rand = new Random();
于 2016-02-04T23:07:04.603 に答える