#python #python-3.x #pygame #pytmx
#python #python-3.x #pygame #pytmx
Вопрос:
Я пытаюсь загрузить карту TMX для проекта в pyGame. Карта загружается нормально, когда я не добавляю объекты. Я использую Tiled для создания карт. Когда я это делаю, я получаю ошибку атрибута.
Я пытался переустановить pytmx и пробовал с другими картами, но, похоже, ничего не работает.
def gameStart():
game = True
tm = pytmx.load_pygame('resources/maps/map1/map.tmx')
size = tm.width * tm.tilewidth, tm.height * tm.tileheight
tmx_data = tm
tw = tmx_data.tilewidth
th = tmx_data.tileheight
gt = tmx_data.getTileImageByGid
while game:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
if tmx_data.background_color:
screen.fill(tmx_data.background_color)
for layer in tmx_data.visibleLayers:
if isinstance(layer, pytmx.TiledLayer):
for x, y, gid in layer:
tile = gt(gid)
if tile:
screen.blit(tile, (x * tw, y * th))
elif isinstance(layer, pytmx.TiledObjectGroup):
pass
elif isinstance(layer, pytmx.TiledImageLayer):
image = gt(layer.gid)
if image:
screen.blit(image, (0, 0))
pygame.display.update()
clock.tick(framerate)
Который возвращает следующее:
File "main.py", line 45, in gameStart
gt = tmx_data.getTileImageByGid
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pytmx/pytmx.py", line 214, in __getattr__
raise AttributeError
AttributeError
Комментарии:
1. откуда вы получили информацию о
getTileImageByGid
? Вы проверили документацию ? Кажется, у него может быть другое имя — аналогично другому методуget_tile_properties_by_gid
.
Ответ №1:
Прочитайте документацию, у нее другое имя: get_tile_image_by_gid(gid)
В следующий раз вы можете проверить print( dir(tmx_data) )
, чтобы увидеть все методы и свойства в tmx_data