我是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;
}
}
答案 0 :(得分:0)
您的问题是每次重绘场景时都会生成一个新的随机数。
要解决此问题,您可能必须创建一个数组,用于存储每个多维数据集的生成颜色。每次重绘图像时,只需读取数组中的每个颜色值即可。