因为我是java的新手我想到编写一个简单的2D游戏,你可以在一个由16x16图形组成的2D世界中走动。我已经找到了一种创建纹理JPanels的方法:
public class TexturedPanel extends JPanel {
private Image image;
private boolean tile;
TexturedPanel(Image image) {
this.image = image;
this.tile = true;
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
if(tile) {
int iw = image.getWidth(this);
int ih = image.getHeight(this);
if (iw > 0 && ih > 0) {
for(int x = 0; x < getWidth(); x += iw) {
for(int y = 0; y < getHeight(); y += ih) {
g.drawImage(image, x, y, iw, ih, this);
}
}
}
} else {
g.drawImage(image, 0, 0, getWidth(), getHeight(), this);
}
}
}
现在我必须决定是否继续使用这种方法,或者我是否应该使用另一种方法......
那么有更好(更快/更简单)的方法来构建纹理化的JPanel吗?
先谢谢,Marvin
答案 0 :(得分:1)
请注意,您发布的方法只会拼贴单个图像。你可能想要平铺多个图像。
执行此操作的一种方法是使用包含每个网格单元格的平铺类型的2D数组,然后使用该数组来决定在每个网格单元格中绘制哪个图像。
我建议小一点 - 您可以先根据2D阵列绘制不同颜色的矩形吗?