0

私は Java と洗練されたツールの初心者です。ウィンドウの特定の領域内にさまざまな色のキューブをランダムに配置するゲームを作成したいと考えています。

2 つの for ループを使用し、レンダリングで乱数を呼び出します。キューブを思いどおりに配置できますが、問題は、キューブがすべての色でちらつくことです。乱数を呼び出す方法と、それが FPS で更新されることに関係していると思いますか?!

私を助けてください!!

    public void render(GameContainer gc, StateBasedGame sdg, Graphics g) throws SlickException {
    //set background

    Image background = (new Image("res/background.png")).getScaledCopy(800, 500);   
    g.drawImage(background, 0, 0);

    //set gamescape
    blue = (new Image("res/blue.png")).getScaledCopy(20,20);
    green = (new Image("res/green.png")).getScaledCopy(20,20);
    red = (new Image("res/red.png")).getScaledCopy(20,20);
    int xvalue = 300;
    int yvalue = 400;


    for (int a = 1; a < 20; a++) {

        for (int i = 1; i < 10; i++) {  
            r = rand.nextInt(3);
            if(r==0){g.drawImage(blue,xvalue,yvalue);}

            else if(r==1){g.drawImage(red, xvalue, yvalue);}

            else{g.drawImage(green, xvalue, yvalue);}

            xvalue = xvalue+20;
        }
        yvalue = yvalue - 20;
        xvalue = xvalue -180;
    }


}   
4

1 に答える 1

0

問題は、シーンを再描画するたびに新しい乱数を生成することです。

これを解決するには、各立方体の生成された色を格納する配列を作成する必要がある場合があります。画像を再描画するたびに、配列内の各色の値を読み取るだけです。

于 2013-05-09T12:26:52.513 に答える