嘿我正在尝试制作一个地下城爬行器而且我被困在地图生成上。我希望有随机房间生成,但在我能完成所有这些之前,我必须在屏幕上绘制地图。我希望地图自上而下,几乎是一个网格,我稍后会添加地板图像。我的想法是创建一个JFrame并使用paintComponent和for循环绘制一个Rectangle2D来制作一个正方形网格。这是正确的方法吗?另外,我如何使用keyListener将角色从正方形移动到正方形?
编辑:地牢爬行器是一种自上而下的游戏,您可以控制一个角色并将其移动到网格中。你杀死怪物,获取武器和掉落的物品,升级等等。现在我只想找出在屏幕上打印地图的最佳方法。我从一个网格开始,角色从一个方块移动到另一个方格并按下箭头键。然后我将继续进行随机地图生成!答案 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(...)
方法中显示它。