Java为游戏绘制地图网格

时间:2012-03-31 19:57:17

标签: java user-interface draw

嘿我正在尝试制作一个地下城爬行器而且我被困在地图生成上。我希望有随机房间生成,但在我能完成所有这些之前,我必须在屏幕上绘制地图。我希望地图自上而下,几乎是一个网格,我稍后会添加地板图像。我的想法是创建一个JFrame并使用paintComponent和for循环绘制一个Rectangle2D来制作一个正方形网格。这是正确的方法吗?另外,我如何使用keyListener将角色从正方形移动到正方形?

编辑:地牢爬行器是一种自上而下的游戏,您可以控制一个角色并将其移动到网格中。你杀死怪物,获取武器和掉落的物品,升级等等。现在我只想找出在屏幕上打印地图的最佳方法。我从一个网格开始,角色从一个方块移动到另一个方格并按下箭头键。然后我将继续进行随机地图生成!

2 个答案:

答案 0 :(得分:2)

首先创建抽象级别是个好主意。从数组开始,包含有关每个单元格的信息(空,障碍物,敌人,玩家,物品等)。

像这样的东西

int[][] a={
  {0,0,0,0,0}, 
  {0,1,0,0,0}, //"1" - obstacle
  {0,0,1,0,0},
  {2,0,1,0,0}, //for example "2" is player
  {0,0,1,0,0}
}

现在只需使用该地图绘制您的矩形(或图像,实际上看起来更好:))。通常每个单元格应该是相同的大小,因此只需绘制一些步骤的矩形。

答案 1 :(得分:1)

您需要创建大小与您的地图大小相匹配的BufferedImages,获取其Graphics对象并使用此对象绘制地图,然后将其处理掉。然后,您可以轻松地在JLabel持有的ImageIcon或JPanel的paintComponent(...)方法中显示它。