0

我是 Java 的初学者,也使用过漂亮的工具。我想制作一个游戏,将不同颜色的立方体随机放置在窗口的某个区域内。

我使用两个 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 回答