【问题标题】:Is there a better way to generate an isometric map grid in python?有没有更好的方法在 python 中生成等距地图网格?
【发布时间】:2020-06-08 08:14:58
【问题描述】:
def map_grid(obj, startx, starty, map_size):
    grid = []
    for n in range(map_size[1]):
        startx -= 32
        starty += 16
        grid.append([[startx, starty]])
    for n in range(map_size[0]):
        startx = grid[n][0][0]
        starty = grid[n][0][1]
        for n in range(map_size[0]):
            startx += 32
            starty += 16
            grid[n].append([startx, starty])
    for n in range(map_size[1]):
        for m in range(map_size[0]):
            main_window.blit(obj.src, (grid[m][n][0], grid[m][n][1]))

Obj 是要显示的图像(在本例中为绿色图块),startx & starty 是起始笛卡尔坐标,map_size 是 '(row, column)' 格式的网格大小。

当我将 mapsize 输入为 (10,10) 时,我希望得到一个 10x10 等距地图,但我却得到了这个, adbnormal map 这是 11x9,在 11 行中的第一行有一个额外的第 10 个坐标。(请参考图片以获得更好的理解。)

【问题讨论】:

    标签: python dictionary grid coordinates isometric


    【解决方案1】:

    我很抱歉这不是在 python 中,但我在 Swift 中执行此操作的方式如下(应该很容易映射到 python,我已经使它有点伪代码)

    for y in 0..<mapHeight {
        for x in 0..<mapWidth {
            drawTile(x: (y * tileWidth) - (x * tileWidth), y: (y * tileHeight) + (x * tileHeight))
        }
    }
    

    谢谢你的问题,它帮助我简化了我自己的算法!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-19
      • 2019-06-29
      • 2015-08-17
      • 2011-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多