我是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"