平铺贴图的起点

时间:2012-02-08 21:16:44

标签: java 2d java-2d tile

我将开始使用Java2D开发Java平台游戏,并试图设计一种创建世界的方法。我现在已经读过这几个小时了,据我所知,一个相对有效的方法是让一个带有“矩阵”值的文本文件,由程序读入。为了创建地图(存储在2D数组中)。

现在,我的计划是让多个JComponents为世界各种纹理显示ImageIcons; JComponent对象将取决于给定数组索引中的字符。

  1. 有什么我可能忽略的吗?
  2. 此原理图是否适用于背景图像,即当有一个代表空格的字符时,是否会显示部分背景?
  3. 道歉,如果这看起来像一个懒惰的问题,我可以向你保证,这不是出于懒惰。我只是想在将代码混合在一起之前计划好这个。

2 个答案:

答案 0 :(得分:0)

除非你有令人信服的理由,否则为每个瓷砖设置不同的组件可能不是一个好方法。查看画布并在其中显示不同偏移处的加载图像。

实施例: 480x640画布 128x16图像文件(包含8个16x16图块图像) 所以你的文件有一堆数字(字符等),我们会说图像中的8个图块为0-7。该文件具有30x40的数字,以与画布相同的网格布局。所以

1 2 1 3 4 8 2 ... ...

显示代码最终结果(未经过测试,基于docs

Graphics g = //initialize graphics;
Image yourTileImage = //load your image;
for (int xpos = 0; xpos < maxX; xpos++)
    for (int ypos = 0; ; ypos < maxY; ypos++)
        int number = //get number from map file
        g.drawImage(Image yourTileImage,
            xpos * 16, ypos * 16, xpos * 16 + 15, ypos * 16 + 15,
            number*16, 0, number+15, 15,
            ImageObserver observer)

其中基本上将数字映射到您的平铺图像,然后将该平铺图像放入画布(x,y)坐标*平铺尺寸的正确位置。

答案 1 :(得分:0)

有许多可用于Java的优秀2D图形引擎。你最好使用其中一个,而不是试图重新发明轮子。 (除了其他任何东西,他们都会使用GPU。

你应该很容易找到一个能满足你需要的东西。