1

我正在尝试制作某种地图制作工具,使用旧的 2D 风格的游戏,例如最终幻想 4。基本上,他们将所有东西都设置在网格中,网格上的每个正方形可能占用 16x16 或 32x32 像素。

我想从小事做起,先把主要的事情搞定。比如生成一张地图,比如说,128x128。这意味着,我应该能够为程序提供一个代表不同可用图块的数字数组,然后程序应该通过按照数组指定的方式放置图块来制作一张新图片(因此索引 0 中的那个将被放置在0,0 等)。

我计划完成后展示图片,但这应该很容易。

我一直在寻找解决方案,我能找到的只是将图片相互叠加(如相互叠加),而不是并排,所以任何人都可以指出我正确的方向吗?如果我不必依赖 3rd 方库,我会喜欢它,因为这更像是一种学习体验而不是实际应用:)

4

1 回答 1

1

首先,将输出创建为BufferedImage您需要的大小。

BufferedImage image = new BufferedImage(width, height, imageType);

然后,Graphics2D从图像中获取对象并开始在结果图像中它们需要的位置绘制较小的图像:

Graphics2D g2 = image.createGraphics();
for (BufferedImage img : images) {
  g2.drawImage(img, x, y, null);
}

然后,您可以将图像保存为所需的格式:jpg、png 或 gif。

ImageIO.write(image, "jpg", file);
于 2012-10-13T17:50:09.003 回答