python - 如何使用pygame将图像加载到网格,而不是仅仅使用填充颜色?

标签 python pygame loadimage

我正在尝试使用 pygame 创建“城市 map ”。我希望能够将建筑物的图像放在特定的网格坐标中,而不是仅仅用颜色填充它们。

这就是我创建 map 网格的方式:

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 的免费 Sprite 的良好来源,请告诉我。谢谢!

this is the grid map i created

最佳答案

这是我写的一个例子。它使用 numpy 来存储图 block 数据。代码加图像可在以下位置下载:http://code.google.com/p/ninmonkey/source/.../maptiles (如果失败,请使用此网址:https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/ninmonkey/source-archive.zip)

  • S 切换鼠标滚动。
  • Map.tiles 是一个 2d numpy.array 存储 tile 的 id

tileset demo

如果你想在 map 上添加单位/ Sprite :(你的建筑物可能算作这个)

  • 使用世界坐标存储位置
  • 使用 world2screen 坐标函数绘制它们。

该函数会将 map 偏移量添加到他们的世界坐标中。因此,如果 map 偏移量为 (-100,0) 并且您的单位的世界坐标为 (0,0),则您在 (-100,0) 处渲染,将它们放置在 map 的左上角,正如预期的那样,即使您滚动。

关于python - 如何使用pygame将图像加载到网格,而不是仅仅使用填充颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12663764/

相关文章:

给定分箱数据的python绘制简单直方图

python - 开始制作游戏,一切正常,但移动功能停止工作

android - 如何从画廊的 ImageView 中加载图像?

javascript - Processing.js 中的动态图像加载

python - 欧拉-拉格朗日的 Sympy 隐式微分

python - Amazon SageMaker 中的 Tensorflow 服务

python - 将实例属性从一个模块移动到另一个模块

python - Pygame - 图像/表面的平滑变换

python - 如何使用 pygame.MOUSEBUTTONDOWN?