TypeError при запуске pyTMX в pycharm (pygame)
Я пытаюсь использовать pyGame и pyTMX в pyCharm; тем не менее, я получаю раздражающее сообщение об ошибке всякий раз, когда я пытаюсь запустить программу. Следующий код был
def get_tile_properties(self, x, y, layer):
""" Return the tile image GID for this location
:param x: x coordinate
:param y: y coordinate
:param layer: layer number
:rtype: python dict if found, otherwise None
"""
try:
assert (x >= 0 and y >= 0 and layer >= 0)
except AssertionError:
raise ValueError
try:
gid = self.layers[int(layer)].data[int(y)][int(x)]
except (IndexError, ValueError):
msg = "Coords: ({0},{1}) in layer {2} is invalid."
logger.debug(msg.format(x, y, layer))
raise Exception
else:
try:
return self.tile_properties[gid]
except (IndexError, ValueError):
msg = "Coords: ({0},{1}) in layer {2} has invalid GID: {3}"
logger.debug(msg.format(x, y, layer, gid))
raise Exception
except KeyError:
return None
Traceback (most recent call last):
File "C:/Users/tett/Documents/Vietnam/test.py", line 16, in <module>
properties = tmxdata.get_tile_properties(x, y, layer)
File "C:\Users\tett\PycharmProjects\untitled\venv\lib\site-
packages\pytmx\pytmx.py", line 568, in get_tile_properties
assert (x >= 0 and y >= 0 and layer >= 0)
TypeError: '>=' not supported between instances of 'TiledTileLayer' and 'int'
Я начал изучать pyGame за две недели до публикации этой статьи, поэтому я знаю, что мозаичные карты намного выше моего уровня навыков. из-за этого я скопировал этот и некоторый другой код с сайта pyTMX. Я считаю, что мозаичные карты - это следующая важная вещь, которую я должен изучить для своей игры, прежде чем я продолжу. Код, похоже, не работает (по крайней мере, для меня), и именно поэтому я здесь, чтобы посмотреть, есть ли у кого-нибудь решение. Я посмотрел на Youtube, эти видео-уроки с плиточными картами не работали, и мои решения для решения этой проблемы не работали.
Код, который я скопировал для вызова файла pyTMX, выглядит следующим образом. m1w1.tmx - это файл, который я пытаюсь загрузить.
tmxdata = pytmx.TiledMap("m1w1.tmx")
tiled_map = pytmx.TiledMap('m1w1.tmx')
for layer in tiled_map.layers:
for x, y, image in layer.tiles():
for obj in layer:
# tile ('GID') properties are accessed through the TiledMap:
properties = tmxdata.get_tile_properties(x, y, layer)
bbox = obj.x, obj.y, obj.width, obj.height
points = obj.points
# if obj.closed == True, then obj is a polygon