繁体   English   中英

如何将pygame中的多个图像添加到网格上?

[英]How to add multiple images in pygame onto a grid?

这是我如何尝试将单位放在屏幕上的代码,但是我可以将它们分成单独的部分,它只显示一种类型。

grid = [[None for i in range(0, 900, 50)] for j in range(0, 900, 50)]
grid[0][2] = RedInfantry
grid[1][2] = RedAntiAirMissleLauncher
grid[2][2] = RedAntiAirTank
grid[3][2] = RedBomber
grid[4][2] = RedHelicopter
grid[5][2] = RedJeep
grid[6][2] = RedMobileGun
grid[7][2] = RedRocketLauncher
grid[8][2] = RedTank
grid[9][2] = RedTransporter

grid[0][9] = BlueInfantry
grid[1][9] = BlueAntiAirMissleLauncher
grid[2][9] = BlueAntiAirTank
grid[3][9] = BlueBomber
grid[4][9] = BlueHelicopter
grid[5][9] = BlueJeep
grid[6][9] = BlueMobileGun
grid[7][9] = BlueRocketLauncher
grid[8][9] = BlueTank
grid[9][9] = BlueTransporter



run = True
while run:
    # handle events
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False

    # draw background
    Background.fill(Green)

    # draw scene
    for i in range(0, 900, 50):
        pygame.draw.line(Background, (0, 0, 0), (0, i), (900, i))
        pygame.draw.line(Background, (0, 0, 0), (i, 0), (i, 900))
    for i in range(len(grid)):
        for j in range(len(grid[i])):
            x, y = i * 50, j * 50
            image = grid[i][j]
            if image != None:
                Background.blit(RedInfantry,(x, y))



    # update dispaly
    pygame.display.update()

我如何将它们变成可以移动的单独部分,而不是它们都是同一块,我想在网格上有多个不同的图像。

这就是发生的事情

你不断地 blit 图像RedInfantry

 Background.blit(RedInfantry,(x, y))

您必须 blit 存储在网格中的图像而不是RedInfantry

image = grid[i][j]
if image != None:
    Background.blit(image, (x, y))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM