pygame循环圆形阵列以算出在哪里绘制



我是Pygame的新手,并且正在尝试绕阵列旋转,以检查在绘制Sprite的库存时,它将从顶部绘制项目。例如,

[empty]
[empty]
[empty]

在这种情况下,如果玩家拿起一个物品,它将在第一个插槽中绘制。

[wood]
[empty]
[empty]

现在,如果玩家拿起另一个项目,它将在第二个插槽中绘制。

inventory = {"logs": 10, "stones": 0, "sword": "none", "pickaxe": "none"}
slots = [False, False, False, False, False, False, False, False, False, False]
if inventory["logs"] > 0: 
    y = 90 #coordinate to draw the logs
    for i in slots:
        if i == "logs":
            break
        elif i == True:
            y += 90
        else:
            slots[i] = "logs"
    screen.blit(pygame.image.load("logs.png"), (invX, y)) '''draws the image 
    into the inventory area'''
if inventory["stones"] > 0:
        y = 90
        for i in slots:
            if i == "stones":
                break
            elif i == True:
                y += 90
            else:
                slots[i] = "stones"
        screen.blit(pygame.image.load("stones.png"), (invX, y))

这不是所有代码,但希望所有所需的代码。首先,我获得了错误列表索引必须是整数或切片,而不是str,其次,它将在彼此上绘制石头和日志图像。

当您使用for i in slots:时,每个I是您列表的实际元素,而不仅仅是数字索引。您应该将括号更改为:

else:
    slots[slots.index(i)] = "logs"

最新更新