gpt4 book ai didi

java - 在 java 中构建 2D map 的其他方法

转载 作者:行者123 更新时间:2023-12-01 12:05:52 24 4
gpt4 key购买 nike

由于我是java新手,我想到编写一个简单的2D游戏,您可以在由16x16图形组成的2D世界中行走。我已经找到了创建纹理 JPanel 的方法:

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?

提前致谢,马文

最佳答案

请注意,您发布的方法仅平铺单个图像。您可能想要平铺多个图像。

实现此目的的一种方法是使用包含每个网格单元的图 block 类型的 2D 数组,然后使用该数组来决定在每个网格单元处绘制哪个图像。

我建议从较小的开始 - 你可以先根据二维数组绘制不同颜色的矩形吗?

关于java - 在 java 中构建 2D map 的其他方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27605292/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com