Menu principal, ¿ayuda?

Hola gente. Tengo un problema.

Trato de hacer un menú principal para uno de mis juegos, Freedom Guardians, pero estoy en problemas.

Esto es lo que me da en ejecutar.py:

» 
  × # NameError: name 'menuprincipal' is not defined 
  × # 
  × # Traza del error (las llamadas mas recientes al final): 
  × #   Archivo "C:\DOCUME~1\Puri\ESCRIT~1\Alvaro\pilas\PILAS-~1\pilasengine\interprete\editor.py",linea 646, en ejecutar 
  × #     exec(contenido, self.interpreterLocals) 
  × #   Archivo actual,linea 10, en 
  × # NameError: name 'menuprincipal' is not defined 
  × # 

Este es el código:

from scenes import *

pilas = pilasengine.iniciar()

pilas.escenas.vincular(logo_pilas.EscenaLogoDePilas)
pilas.escenas.vincular(escena_logo.EscenaLogo)
pilas.escenas.vincular(disclaimer.Disclaimer)
pilas.escenas.vincular(menuprincipal.MenuJuego)

pilas.escenas.EscenaLogoDePilas()
pilas.ejecutar()


Y este el codigo del menuprincipal.py (a medias):

import pilasengine

class MenuJuego(pilasengine.escenas.Escena):
    def iniciar(self):
        self.fondo = self.pilas.fondos.Color(self.pilas.colores.negro)
        self.pilar = self.pilas.actores.Actor()
        self.pilar.imagen = "images/fglogointro.png"
        self.pilar.transparencia = 100
        self.pilas.tareas.agregar(1,self.fade_in)
        
    def fade_in(self):
        self.pilar.transparencia = [100,0]

Aquí dejo todo mi material:

Ayudenme por favor! Es urgente!

Hola @Synfigmaster91, no pude probar el código directamente, pero creo que podrías obtener un mensaje de error más claro si eliminas la linea:

from scenes import *

y en su lugar escribieras:

from scenes import menuprincipal
from scenes import escena_logo
from scenes import logo_pilas
from scenes import disclaimer

Estoy casi seguro había un problema al incluir varios módulos al mismo tiempo usando import “*”:

1 Like

Lo probé como me sugeriste y funciona :slight_smile:

No sabia que fuera esta la forma de poner varias escenas en un juego :sweat:

Ahora tengo un problema con otro juego, Space Warrior, lo he organizado como hice en Freedom Guardians pero en ejecutar.py me sale esto:

» 
  × # ImportError: No module named scenes 
  × # 
  × # Traza del error (las llamadas mas recientes al final): 
  × #   Archivo "C:\DOCUME~1\Puri\ESCRIT~1\Alvaro\pilas\PILAS-~1\pilasengine\interprete\editor.py",linea 646, en ejecutar 
  × #     exec(contenido, self.interpreterLocals) 
  × #   Archivo actual,linea 2, en 
  × # ImportError: No module named scenes 
  × # 

Este caso es similar, solamente que tendrías que colocar en el directorio “scenes” el archivo \__init__.py

Sin este archivo, python no sabe que se trata de un módulo, entonces no lo puede importar.

1 Like

Ah, okay.

Como lo tengo que crear, que debería poner dentro de ese archivo? O lo copio de otro juego?

Si, en realidad puede ser el mismo del otro juego. Con ser un archivo vacío debería funcionar bien.

Acá hay una explicación de lo que hace ese archivo, igual es solo para profundizar nomás:

http://librosweb.es/libro/python/capitulo_3/creando_modulos_empaquetados.html

1 Like