Hola!
De nada por la ayuda, para esto está el foro
La carga de niveles no te funciona desde una subcarpeta haciendo "
xxx.fromfile("carpeta/archivo") porque el tmx a su vez carga un png, pero no lo encuentra porque lo busca en la raíz, no en la subcarpeta. Para eso puse la función
engine.set_load_path("carpeta"), para que el cargador busque lo que necesite ahí dentro. Si miras cualquiera de los ejemplos que tengo en el proyecto del wrapper o en el "PythonPlatformer" verás que siempre lo hago así, en una subcarpeta "assets" pongo todo, y al iniciar el programa hago "
engine.set_load_path("assets"). Todo lo que intentes cargar a partir de sese momento lo buscará en la carpeta "assets".
http://www.tilengine.org/doc_python/tile..._load_path
1- A efectos prácticos da igual, pero como
hero y
fondo son instancias de objetos, la forma correcta de decir que no contienen nada es
None. Si pones un 0 puedes dar a entender que esas variables almacenan números, cuando no es así.
2- Si no pones
global,
hero y
fondos se crearían localmente dentro de la función
init_level() y luego se perderían. Como lo que quieres es que actualice las variables globales en vez de crear unas locales, se usa la palabra
global
https://micro.recursospython.com/recurso...lobal.html
3- Sí se podría, pero siempre es mejor actualizar una variable dentro del contexto de una función relacionada, que modificarlo directamente fuera, hace más fácil el mantenimiento.
4- Es porque sólo tenías un actor. Si hubiese muchos, en efecto lo correcto sería destruir la lista entera. No deshabilito las capas porque las gestionas directamente en la aplicación, independientemente del nivel siempre usas la 0 y la 1, que es lo correcto. No necesitas desactivarlas para asignarles otro mapa. En cambio en los sprites, como dejas a Tilengine que te los administre con la función
get_available_sprite(), sí que tienes que deshabilitarlo expresamente para que sepa que ese sprite está nuevamente disponible.