Java 砖块每次都会改变颜色

Java 砖块每次都会改变颜色,java,colors,breakout,Java,Colors,Breakout,所以,我正在用java进行突破(这不是h/w,学校结束了) 我希望砖块的颜色是随机的,但我的砖块在游戏运行时会改变颜色。所以现在,看起来砖块都亮起来了!!请帮忙 package main; import java.awt.Color; import java.awt.Graphics; import java.awt.Rectangle; import java.util.ArrayList; import java.util.Random; public class Brick {

所以,我正在用java进行突破(这不是h/w,学校结束了)

我希望砖块的颜色是随机的,但我的砖块在游戏运行时会改变颜色。所以现在,看起来砖块都亮起来了!!请帮忙

package main;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.util.ArrayList;
import java.util.Random;

public class Brick {
    public static final int X = 0, Y = 0, ROW_SIZE = 8, COL_SIZE = 5;
    private Random random = new Random();
    private ArrayList<Rectangle> arr = new ArrayList<>();

public Brick(int width, int height) {
    for(int i = 0; i < COL_SIZE; i++){
        for(int j = 0; j < ROW_SIZE; j++) {
            Rectangle r = new Rectangle(X + (j * (width / ROW_SIZE)), 
                        Y + (i * (height / COL_SIZE)), (width / ROW_SIZE), (height / COL_SIZE));
            arr.add(r); 
        }
    }
}

public ArrayList<Rectangle> getList(){
    return arr;
}

public void setList(ArrayList<Rectangle> rects){
    arr = rects;
}

public void paint(Graphics g){
    for(Rectangle rect : arr){
        g.setColor(new Color(random.nextInt(256), random.nextInt(256), random.nextInt(256)));
        g.fillRect(rect.x, rect.y, rect.width, rect.height);
    }
}
}

请帮忙!谢谢你

public void paint(Graphics g){
    for(Rectangle rect : arr){
        g.setColor(new Color(random.nextInt(256), random.nextInt(256), random.nextInt(256)));
        g.fillRect(rect.x, rect.y, rect.width, rect.height);
    }
}

事实上,它在每次重画时都会改变颜色——你在每次调用时都会创建新的随机颜色。我认为您应该在Brick构造函数中创建颜色并重用它。

repaint()是为了让游戏在第一次迭代后刷新。如果我对repaint()进行注释,游戏将开始,但球和球员不会移动。我相信我的问题在于我在砖块数组列表上执行for循环,并将颜色设置为随机。所以每次编译器通过砖块时,它都会改变颜色…@soon kwon,是的,但我想你自己也会这么做。我不是问完整的答案,而是关于如何开始的说明…比如,在这一点上放一个代码。我有一个构造器,但我不知道应该在里面放什么样的代码。。。
public void paint(Graphics g){
    for(Rectangle rect : arr){
        g.setColor(new Color(random.nextInt(256), random.nextInt(256), random.nextInt(256)));
        g.fillRect(rect.x, rect.y, rect.width, rect.height);
    }
}