我创造了Conway生命游戏的一个版本并且它工作正常,但是当2D阵列变大时,你可以看到游戏逐行更新(因为它是循环遍历数组)。
以下方法是我用来更新游戏的方法。 cellList是包含每个单元的状态的数组。 1 =活着,0 =死。该方法为数组中的每个单元格绘制一个矩形。
有没有办法更快地遍历数组?这是我第一次真正使用摇摆项目,所以我不熟悉我可以使用的其他东西。
谢谢!
public void paintCells()
{
Graphics g = getGraphics();
for(int x=0;x<cellList.length;x++)
{
for(int y=0;y<cellList.length;y++)
{
int rectX = winX/width * y;
int rectY = winY/height * x;
int rectWidth = winX/width;
int rectHeight = winY/height;
if(cellList[x][y] == 1)
{
g.setColor(Color.GREEN);
g.fillRect(rectX, rectY, rectWidth, rectHeight);
}
else
{
g.setColor(Color.BLACK);
g.fillRect(rectX, rectY, rectWidth, rectHeight);
}
}
}
在通过HDMI更新的阵列连接的监视器上查看程序,平滑程度高达700x700。我认为问题的主要原因是我使用的是由VGA连接的旧显示器。