我正在尝试使用pygame创建一个“城市地图”。我希望能够将建筑物的图像放在特定的网格坐标中,而不是仅用颜色填充它们。
这是我创建此地图网格的方式:
def clear():
for r in range(rows):
for c in range(rows):
if r%3 == 1 and c%3 == 1:
color = brown;
grid[r][c] = 1;
else:
color = white;
grid[r][c] = 0;
pygame.draw.rect(screen, color, [(margin+width)*c+margin, (margin+height)*r+margin, width, height])
pygame.display.flip();
现在如何将建筑物的图像放在那些特定位置的棕色网格中?我已经尝试了一些在线样本但似乎无法让它们起作用。任何帮助表示赞赏。
如果有人有可用于pygame的免费精灵的好来源,请告诉我。谢谢!
答案 0 :(得分:4)
这是我写的一个例子。它使用numpy
来存储切片数据。代码加图片可从以下网址下载:http://code.google.com/p/ninmonkey/source/.../maptiles(如果失败,请使用此网址:https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/ninmonkey/source-archive.zip)
Map.tiles
是2d numpy.array
,用于存储磁贴的ID
如果您想要添加位于贴图顶部的单位/精灵:(您的建筑物可能会被视为此)
world2screen
坐标函数绘制它们。该函数会将地图偏移量添加到其世界坐标。因此,如果地图偏移量为(-100,0)且单位的世界坐标为(0,0),则渲染为(-100,0),将它们放置在地图的左上角部分,如预期的那样,即使你滚动了。