No se encuentran las rutas a archivos [SOLUCIONADO]

Buenas!
Me doy cuenta que el tema es complicado, y no estoy seguro de poder explicarme correctamente para que se entienda cual es el problema exacto con el que me he encontrado… :sweat:
Si hay algo que queda poco claro, por favor diganmelo para explicarlo mejor.

El juego que estoy creando funciona muy bien cuando lo lanzo desde Geany, sin abrir Pilas. Ahora lo estoy testando en Pilas y resulta que no encuentra la ruta a archivos en una carpeta adyacente ( en el mismo directorio del juego, y que si encuentra desde Geany). No copio y pego el error por que es el mismo que sale siempre cuando no escribes correctamente la ruta a un archivo.

Da el mismo error en Linux Mint con pilas v1.4.1 que usando WINE con pilas v1.4.8

He probado con el juego modulizado, y tambien sin modulizar (de una copia de seguridad anterior a modularlo), con idéntico resultado.

Buscando el error he creado otro fichero “prueba.py” con una escena simple, en el mismo directorio del juego, y llamando como fondo a la misma imagen que me da problemas en el juego. Bueno, ahí va lo más raro:

Abro Pilas desde el terminal de LinuxMint. Abro el editor de Pilas.

Abro el fichero “juego.py” en Pilas desde el editor. Se me abre una ventana fuera de Pilas, con el juego. Da error de ruta de archivo PNG (el que me sirve de Fondo). La ventana propia de pIlas está oscura, y sale el mensaje “cargando…”

Cierro esa ventana que se abrió fuera de Pilas (pero no cierro el editor).

Abro en el editor el fichero “prueba.py”. Se abre correctamente (de nuevo en una ventana externa a Pilas), y sale de fondo la imagen elegida, sin fallos de ruta. La ventana de Pilas sigue con el mensaje “cargando…”

Cierro de nuevo esa ventana “externa” (pero no cierro el editor).

Abro de nuevo el fichero “juego.py” en el editor. Se abre la ventana externa a PIlas. Ahora el juego se ejecuta perfectamente!!! :cold_sweat: La ventana de Pilas sigue diciendo “cargando…”

Y aún otra cosa:
Si hago lo mismo, pero (en vez de abrir el fichero desde el editor) arrastrando los .py a la ventana de Pilas el resultado es el mismo pero con una diferencia: se me abren correctamente DOS ventanas del juego.

Si anulo la linea de código que da error (la del PNG de fondo) me da EL MISMO ERROR al cargar la música, ya que me dice que no encontró (o no existe) el fichero de música, que está en otra carpeta diferente de los PNG.

Soy consciente de que lo que explico suena raro de verdad… Ojalá alguien sepa decirme qué puede estar pasando, porque me está volviendo loco. :scream:

Muchas gracias de antemano.

Hola @jordinur, me suena raro que al abrir el juego desde pilas se abra en una ventana diferente… ¿estás usando la versión nueva de pilas (que se inicializa con import pilasengine) ? ¿nos pasarías las primeras lineas de tu script, donde se inicializa pilas?

Hola Hugo!
Si, a mi tambien me extraña, por eso lo puse…
Este es el script de arranque del juego. A su mismo nivel hay 3 carpetas: una para los scripts py, una para la musica, y otra para las imagenes.

Como ya dije, da el mismo error en Linux Mint con pilas v1.4.1 que usando WINE con pilas v1.4.8 (son las dos versiones que tengo instaladas en mi PC, una para Linux y otra para Windows con WINE…)

# -*- encoding: utf-8 -*-

import pilasengine
from files import *  #carpeta donde guardo las escenas del juego

pilas=pilasengine.iniciar(alto=480, ancho=800, titulo='VENI VIDI VICI')


pilas.actores.vincular(miejercito.Enemigos)
pilas.actores.vincular(miejercito.Romanos)
pilas.actores.vincular(miejercito.Bandera_Romana)
pilas.actores.vincular(miejercito.Empalizada_Romana)
pilas.actores.vincular(miejercito.Bandera_Enemiga)
pilas.actores.vincular(miejercito.Empalizada_Enemiga)
pilas.actores.vincular(miejercito.BotonVolver)

pilas.escenas.vincular(escenalucha.EscenaLucha)
pilas.escenas.vincular(victoria.Escena_Victoria)
pilas.escenas.vincular(victoria.Escena_Derrota)
pilas.escenas.vincular(victoria.Escena_Inicio)
pilas.escenas.vincular(victoria.Escena_Final)
pilas.escenas.vincular(victoria.Escena_Creditos)

pilas.escenas.Escena_Inicio()

pilas.ejecutar()

Un abrazo. :slight_smile:

Buenas!

He estado haciendo pruebas… y por fin he conseguido una pequeña “victoria”.

Estuve desvinculando escenas de mi script, pero aún desvinculandolas todas y creando una escena en el mismo script me seguia dando el error.

Así que lo que hice fué BORRARLO COMPLETAMENTE, y empezar a escribir desde cero y vinculando una sola escena modulizada.

# -*- encoding: utf-8 -*-

import pilasengine
from files import victoria
pilas = pilasengine.iniciar(alto=480, ancho=800, titulo='VENI VIDI VICI')


pilas.escenas.vincular(victoria.Escena_Inicio)

pilas.escenas.Escena_Inicio()

pilas.ejecutar()

Este script se abre correctamente en Pilas. Además se abre en la propia ventana de Pilas y no en una ventana a parte.

El por que este script si es correcto y el otro no es todo un misterio para mí, ya que aparentemente tienen los mismos parámetros…

Ahora lo que haré será ir vinculando escena por escena, a ver si sigue sin darme error.

Seguiré informando…

¿será que la linea from files import * da problemas?, el import con * de python es un poco especial…

Hola Hugo!!!

Pues seguramente debia ser eso lo que daba el problema…

He vinculado todas las escenas y todos los actores, pero cambiando el import *

import pilasengine
from files import victoria, escenalucha, miejercito

de esta manera se evita importar ficheros innecesarios.

Ahora el juego corre perfectamente (y en la propia ventana de Pilas), tanto en Pilas 1.4.1 (LinuxMint) como en Pilas 1.4.8 para windows (WINE).

Muchas gracias por la ayuda!!! :smile: Eres el mejor de los mejores.

En cuanto acabe cuatro detalles gráficos subo la versión “beta” de mi juego.