2013-05-09 34 views
0

我是Java的初学者,也是流畅的工具。我想制作一个游戏,在窗口的某个区域内随机放置不同颜色的立方体。我如何获得一个随机数字以保持光滑?

我使用两个for-loops并在渲染中调用一个随机数。我把立方体放到我想要的位置,但问题是它们闪烁着各种颜色。我想这与我如何呼叫一个随机数字有关,并且它是通过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; 
    } 


} 

回答

0

你的问题是,你每次重绘场景时都会生成一个新的随机数。

要解决此问题,您可能必须创建一个数组,用于存储每个多维数据集的生成颜色。每次重绘图像时,只需读取数组中的每个颜色值即可。