, поэтому я пытаюсь создать платформер с боковой прокруткой и создал карту с помощью Tiled Map Editor. Я успешно загрузил объекты и плитки без плитки в свою игру, используя следующий класс, который я написал:
class TiledMap:
def __init__(self, filename):
tm = pytmx.load_pygame(filename, pixelalpha=True)
self.tmxdata = tm
self.width = tm.width * tm.tilewidth
self.height = tm.height * tm.tilewidth
def render(self, surface):
# ti = self.tmxdata.get_tile_image_by_gid
for layer in self.tmxdata.visible_layers:
if isinstance(layer, pytmx.TiledTileLayer):
for x, y, gid, in layer:
tile_bitmap = self.tmxdata.get_tile_image_by_gid(gid)
if tile_bitmap:
surface.blit(
tile_bitmap,
(x * self.tmxdata.tilewidth, y * self.tmxdata.tileheight),
)
# This doesn't work but I tried to do this
elif isinstance(layer, pytmx.TiledObject):
for x, y, gid in layer:
for objects in self.tmxdata.objects:
if objects.name == "Background":
img_bitmap = self.tmxdata.get_tile_image_by_gid(gid)
surface.blit(img_bitmap, (objects.x, objects.y))
def make_map(self):
temp_surface = pg.Surface((self.width, self.height))
self.render(temp_surface)
return temp_surface
И теперь я пытаюсь загрузить фоновое изображение, которое, согласно документации редактора карты плиток, я превратили в большой объект плитки и поместили на фоновый слой. Но я не знаю, как загрузить плиточный объект с помощью Pytmx, я попытался посмотреть исходный код, и, похоже, он поддерживает плиточные объекты. Я знаю, что у этих плиточных объектов было свойство gid, но я не уверен, как с его помощью загрузить изображение объекта тайла.
И я новичок в pygame и pytmx, но не обязательно новичок в python. Спасибо!