pygame循环圆数组来计算绘制的位置

时间:2017-06-04 17:48:46

标签: python

我对pygame很新,我试图循环我的数组以检查在抽出精灵的库存时,它会从上到下绘制项目。例如,

[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,其次,它会绘制石头并将图像记录在彼此之上。

1 个答案:

答案 0 :(得分:0)

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

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