我将开始使用Java2D开发Java平台游戏,并试图设计一种创建世界的方法。我现在已经读过这几个小时了,据我所知,一个相对有效的方法是让一个带有“矩阵”值的文本文件,由程序读入。为了创建地图(存储在2D数组中)。
现在,我的计划是让多个JComponents为世界各种纹理显示ImageIcons; JComponent对象将取决于给定数组索引中的字符。
道歉,如果这看起来像一个懒惰的问题,我可以向你保证,这不是出于懒惰。我只是想在将代码混合在一起之前计划好这个。
答案 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。
你应该很容易找到一个能满足你需要的东西。