Java 将字符转换为二维图形
Java Changing Characters into 2D Graphics
我打开一个包含迷宫的文本文件,它由 # 和 space 组成。其中哈希标签代表 "wall",space 是您可以移动的区域。
目前我已经打开文件并将所有内容存储在二维数组中,以便控制台以与文本文件完全相同的格式打印出来。
我要完成的下一个阶段是,如果 char 是哈希标记,则用深灰色填充矩形,如果 space 用白色填充矩形。目前由于某种原因,迷宫出现了,但看起来很小。
我不知道我是否采用了正确的方法,但我正在尝试修改现有方法,而不是创建另一种方法。
基本上我想用我的迷宫填满整个 600x400,而不是那么小。我认为设置矩形的大小可以实现这一点。
我正在尝试的是:
public static void mazeFrame() {
JFrame f = new JFrame("Maze");
f.setSize(400, 600);
f.setLocationRelativeTo(null);
f.add(new Exercise4());
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
// ...
int i = 0; //y axis
if (c == '#') {
cells[i][j] = true;
g.setColor(Color.DARK_GRAY);
g.drawRect(j,i, 50,50);
} else {
cells[i][j] = false;
g.setColor(Color.white);
g.drawRect(j,i, 50,50);
}
}
i++;
}
但我的输出是
您没有在扩展迷宫。
g.drawRect(j,i, 50,50);
j
和 i
的值均从 0 开始并递增 1。
因此,您的 50x50 块重叠。
如果你添加比例因子,你的迷宫会更大:
g.drawRect(xScale * j, yScale * i, 50,50);
由于您打算使用 50x50 块,因此 xScale
和 yScale
的正确值为 50。
您可以从那里继续并使用:
g.drawRect(xScale * j, yScale * i, xScale, yScale);
一旦你成功了,你应该看看 AffineTransform class,这会给你更多的选择。不过那是以后的事情了。
我打开一个包含迷宫的文本文件,它由 # 和 space 组成。其中哈希标签代表 "wall",space 是您可以移动的区域。
目前我已经打开文件并将所有内容存储在二维数组中,以便控制台以与文本文件完全相同的格式打印出来。
我要完成的下一个阶段是,如果 char 是哈希标记,则用深灰色填充矩形,如果 space 用白色填充矩形。目前由于某种原因,迷宫出现了,但看起来很小。
我不知道我是否采用了正确的方法,但我正在尝试修改现有方法,而不是创建另一种方法。
基本上我想用我的迷宫填满整个 600x400,而不是那么小。我认为设置矩形的大小可以实现这一点。
我正在尝试的是:
public static void mazeFrame() {
JFrame f = new JFrame("Maze");
f.setSize(400, 600);
f.setLocationRelativeTo(null);
f.add(new Exercise4());
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
// ...
int i = 0; //y axis
if (c == '#') {
cells[i][j] = true;
g.setColor(Color.DARK_GRAY);
g.drawRect(j,i, 50,50);
} else {
cells[i][j] = false;
g.setColor(Color.white);
g.drawRect(j,i, 50,50);
}
}
i++;
}
但我的输出是
您没有在扩展迷宫。
g.drawRect(j,i, 50,50);
j
和 i
的值均从 0 开始并递增 1。
因此,您的 50x50 块重叠。
如果你添加比例因子,你的迷宫会更大:
g.drawRect(xScale * j, yScale * i, 50,50);
由于您打算使用 50x50 块,因此 xScale
和 yScale
的正确值为 50。
您可以从那里继续并使用:
g.drawRect(xScale * j, yScale * i, xScale, yScale);
一旦你成功了,你应该看看 AffineTransform class,这会给你更多的选择。不过那是以后的事情了。