如何在 pygame 中制作视觉清单

How do I make a visual inventory in pygame

我正在制作一个小游戏,我需要一个五到六个插槽的库存,它基本上看起来像这样 [ ][ ][ ][ ][ ][ ],在每个盒子中,项目需要放置。目前,我已经尝试过使用字典,但他们没有给我想要的东西。我想要的清单:一个 6 槽库存,可将任何东西(例如:矩形)放在第一个开放槽中。如果按下一个键,最右边的插槽中有一个项目的项目将会消失,当按下另一个键时,它应该将一个项目放入第一个打开的插槽中。我只是希望有人向我发送正确的方向,并告诉我以这种方式创建库存有什么用。

我对 pygame 不太熟悉,但我对 python 很熟悉所以希望这对您有所帮助..

听起来你需要制作一个列表作为 stack

inv = []

下面的代码会将一个项目添加到该列表。

if len(inv) < 6:
    inv.append(item)
else:
    print("No inventory space")

此代码将删除最近添加的项目:

inv.pop()

.pop() 删除 python 列表中最近添加的项目。此时此人可以尝试将前一项重新添加到 space 中,它应该进入 space 6(在列表中是 inv[5] 因为列表将 0 计为第一个插槽).

编辑 1 评论回复: 导入 pygame, 系统 pygame.init()

inv = []
#Code below will add an item to that list.
while True:
    for event in pygame.event.get():
            if event.type == pygame.QUIT:
                    pygame.quit()
                    sys.exit()

    key_pressed = pygame.key.get_pressed()
    if key_pressed[pygame.K_x]:
            if len(inv) < 6:
                    inv.append("someItem")              
            else:
                    print("No inventory space")
#This code will remove the most recently added item:
    if key_pressed[pygame.K_z]:
            inv.pop()
    if key_pressed[pygame.K_c]:
            print(inv)