Я строю небольшую игру, используя Pygame, и мне нужно извлечь текущий тайл, на котором стоит игрок, и сохранить его в инвентаре.
Я просматривал форум на предмет аналогичной проблемы, но это не помогло мне решить мою проблему.Мне трудно понять, почему это не работает.
inventory = {
Elements.DIRT : 0,
Elements.GRASS : 0,
Elements.WATER : 0,
Elements.COAL : 0,
Elements.ROCK : 0,
Elements.LAVA : 0
}
tilemap = [[Elements.DIRT for w in range(MAPWIDTH)] for h in
range(MAPHEIGHT)]
for rw in range(MAPHEIGHT):
for cl in range(MAPWIDTH):
randomNumber = random.randint(0,100)
if randomNumber == 0:
tile = Elements.LAVA
elif randomNumber >= 1 and randomNumber <= 10:
tile = Elements.COAL
elif randomNumber >= 11 and randomNumber <= 30:
tile = Elements.WATER
elif randomNumber >= 31 and randomNumber <= 75:
tile = Elements.GRASS
else:
tile = Elements.DIRT
tilemap[rw][cl] = tile
if event.key == K_SPACE:
#What resource is the player standing on?
currentTile = tilemap[playerPos[1][playerPos[0]]]
#Player now has 1 more of this resource
inventory[currentTile] += 1
#The player is now standing on dirt
tilemap[playerPos[1][playerPos[0]]] = Elements.DIRT
print(inventory)
Я могу загрузить его, но я получаю, что объект int не имеет атрибута __getitem__
всякий раз, когда я нажимаю пробел.Я ожидал напечатать словарь инвентаря.