Error al cargar mapa en fomato tmx

Hola, estoy haciendo un juego, y le quiero agregar un mapa hecho desde Tiled, con sus respectivas colisiones. La cosa es que, a la hora de cargar el archivo.tmx, sale un error de lista:

He usado el código de pilas.actores.MapaTiled(“BAR.tmx”) y en ningún momento el mapa se ve afectado por alguna línea de código.

Buenas, @Mateo_Bc!

Los mapas, sobre todo los tiled, son muy prácticos pero tienen su “que”… hay que hacerlos correctamente, siguiendo escrupulosamente las instrucciones del tutorial
http://manual.pilas-engine.com.ar/mapas_y_plataformas/

Pero debemos suponer que lo has hecho todo correctamente…

Por el error que da parece ser que no se le aporta el tipo de “tag” correcto en el XmlNode del actor MapaTiled:

def getChild(self, tag):
        """Retorna el primer nodo hijo que contenga el tag especificado."""
        return XmlNode(self.elem.getElementsByTagName(tag)[0])

Se podría pensar que hay algún tipo de error en la creación del tiled y que el tipo de tag que se pasa como parámetro no ha sido creado (ya que aunque sólo hubiera uno al especificar el valor [0] se accedería a él)… :cold_sweat:

Si te digo la verdad, nunca he usado un mapa tiled en mis juegos, pero quizás si nos aportas algo de tu código podamos ver el error…

Aunque estoy seguro que tu ya lo habás consultado, por si acaso te paso estos links a otros posts sobre mapaTiled

Tambien se me ocurre que edites el archivo “pilasengine/pilasengine/ejemplos/mapa_desde_archivo.tmx” y lo compares con tu archivo.tmx, para ver si hay alguna diferencia substancial que provoque el error.

Si nada de esto te sirve, por favor vuelve a preguntar aportando más datos y código.

Un saludo :wink:

Buenas!

He estado haciendo pruebas con tiled (no lo había probado nunca).

El error está en que tiled no crea el tag image

Desconozco si es por que no hago algo bien, o por que en esta versión del tiled ya no se usa ese tag. El actor de pilas MapaTiled busca ese tag y al no encontrarlo da error.

Así que he editado a mano el archivo prueba.tmx, añadiendo este tag image entre el tileset de apertura y el tileset/> de cierre (en la versión actual de tiled el tileset se cierra él mismo ). Si sabes algo de HTML no te va acostar de entender esto… :yum:

<?xml version="1.0" encoding="UTF-8"?>
<map version="1.0" orientation="orthogonal" renderorder="right-down" width="20" height="15" tilewidth="32" tileheight="32">
 <tileset firstgid="1" name="free_tileset_version_10" tilewidth="32" tileheight="32">
  <image source="free_tileset_version_10.png" width="480" height="1216"/>
 </tileset>
 <layer name="suelo" width="20" height="15">
  <data encoding="csv">

IMPORTANTE Además, hay que añadir en la misma carpeta que el tiled el archivo png de origen

Para las pruebas he usado el mismo archivo png que el ejemplo del mapa_desde_archivo.

Con esto el mapa me ha funcionado correctamente :smile:

Espero que te ayude! :wink: