ACLARACIÓN: ESTE TUTO ES PARA PILAS-ENGINE VERSIÓN PYTHON.
Buenas!
Dado que tanta gente se interesa en los temas de creación de Menús y escenas, aquí dejo un tutorial explicado paso a paso, y creo que MUY facil de seguir.
Empezamos:
1.- Lo básico, abrimos nuestro editor preferido y escribimos:
# -*- encoding: utf-8 -*-
import pilasengine
pilas = pilasengine.iniciar()
pilas.ejecutar()
2.- Creamos las escenas, y las VINCULAMOS.
# -*- encoding: utf-8 -*-
import pilasengine
pilas = pilasengine.iniciar()
class EscenaMenu(pilasengine.escenas.Escena):
def iniciar(self):
pass
def actualizar(self):
pass
class EscenaJuego(pilasengine.escenas.Escena):
def iniciar(self):
pass
def actualizar(self):
pass
pilas.escenas.vincular(EscenaMenu) <----vinculamos
pilas.escenas.vincular(EscenaJuego) <----vinculamos
pilas.ejecutar()
3.- Vamos a indicar que escena se va a reproducir de entrada:
# -*- encoding: utf-8 -*-
import pilasengine
pilas = pilasengine.iniciar()
class EscenaMenu(pilasengine.escenas.Escena):
def iniciar(self):
pass
def actualizar(self):
pass
class EscenaJuego(pilasengine.escenas.Escena):
def iniciar(self):
pass
def actualizar(self):
pass
pilas.escenas.vincular(EscenaMenu)
pilas.escenas.vincular(EscenaJuego)
pilas.escenas.EscenaJuego() # <-----indicamos
pilas.ejecutar()
4.- Vamos a hacer la EscenaJuego:
un fondo, un actor, un boton para volver a menu:
# -*- encoding: utf-8 -*-
import pilasengine
pilas = pilasengine.iniciar()
class EscenaMenu(pilasengine.escenas.Escena):
def iniciar(self):
pass
def actualizar(self):
pass
class EscenaJuego(pilasengine.escenas.Escena):
def iniciar(self):
self.fondo_juego = pilas.fondos.Tarde()
self.Mi_Actor = pilas.actores.Mono()
self.Mi_Actor.decir('Hola, estamos en la escena del juego !!!')
self.Boton_Volver =pilas.interfaz.Boton('Volver al Menu')
self.Boton_Volver.y = -100
#conectamos el boton...
self.Boton_Volver.conectar(self.Volver)
#con la funcion que nos lleva al Menu:
def Volver(self):
pilas.escenas.EscenaMenu()
def actualizar(self):
pass
pilas.escenas.vincular(EscenaMenu)
pilas.escenas.vincular(EscenaJuego)
pilas.escenas.EscenaJuego()
pilas.ejecutar()
Bien, hasta ahora tenemos una escena donde hacer nuestro juego,
con un botón para salir al menu principal.
5.- Ahora la escena del Menú:
# -*- encoding: utf-8 -*-
import pilasengine
pilas = pilasengine.iniciar()
class EscenaMenu(pilasengine.escenas.Escena):
def iniciar(self):
#le ponemos un fondo:
self.fondo_menu = pilas.fondos.Volley()
#Le ponemos un titulo:
self.Nombre_de_mi_juego = pilas.actores.Texto(u'MI GRAN JUEGO')
self.Nombre_de_mi_juego.color = pilas.colores.rojo
self.Nombre_de_mi_juego.y = 170
def actualizar(self):
pass
class EscenaJuego(pilasengine.escenas.Escena):
def iniciar(self):
self.fondo_juego = pilas.fondos.Tarde()
self.Mi_Actor = pilas.actores.Mono()
self.Mi_Actor.decir('Hola, estamos en la escena del juego !!!')
self.Boton_Volver =pilas.interfaz.Boton('Volver al Menu')
self.Boton_Volver.y = -100
self.Boton_Volver.conectar(self.Volver)
def Volver(self):
pilas.escenas.EscenaMenu()
def actualizar(self):
pass
pilas.escenas.vincular(EscenaMenu)
pilas.escenas.vincular(EscenaJuego)
pilas.escenas.EscenaJuego()
pilas.ejecutar()
6.- Vamos a hacer el menú. Para ello antes que nada vamos a poner
las funciones del menú, es decir, lo que va a hacer el menu cuando
lo seleccionemos.
En nuestro caso vamos a poner solo dos opciones:
a.- Ir a la escena del juego.
b.- Salir de Pilas.
Pero pueden haber tres, cuatro, o más, depende de lo que cada cual
necesite para su juego…
# -*- encoding: utf-8 -*-
import pilasengine
pilas = pilasengine.iniciar()
class EscenaMenu(pilasengine.escenas.Escena):
def iniciar(self):
self.fondo_menu = pilas.fondos.Volley()
Nombre_de_mi_juego = pilas.actores.Texto(u'MI GRAN JUEGO')
Nombre_de_mi_juego.color = pilas.colores.rojo
Nombre_de_mi_juego.y = 170
def actualizar(self):
pass
def Salir_de_Pilas(self): # <-----------
pilas.terminar() #salimos de pilas y se cierra
def Ir_al_juego(self): #<-------------
pilas.escenas.EscenaJuego() # vamos al juego
class EscenaJuego(pilasengine.escenas.Escena):
def iniciar(self):
self.fondo_juego = pilas.fondos.Tarde()
self.Mi_Actor = pilas.actores.Mono()
self.Mi_Actor.decir('Hola, estamos en la escena del juego !!!')
self.Boton_Volver =pilas.interfaz.Boton('Volver al Menu')
self.Boton_Volver.y = -100
self.Boton_Volver.conectar(self.Volver)
def Volver(self):
pilas.escenas.EscenaMenu()
def actualizar(self):
pass
pilas.escenas.vincular(EscenaMenu)
pilas.escenas.vincular(EscenaJuego)
pilas.escenas.EscenaJuego()
pilas.ejecutar()
Ya tenemos creadas las funciones… ya falta poco!
7.-POR FIN ! Creación del actor Menu.
Creamos el menú DENTRO de la def iniciar(self): de la EscenaMenu
IMPORTANTE: No dejarse ninguna coma, ningun parentesis, ojo
a los corchetes, todo tiene que estar en su sitio y ordenado…
Como ven, creamos al actor Menu.
a la izquierda lo que va a salir por pantalla como texto
a la derecha lo conectamos a las def():
# -*- encoding: utf-8 -*-
import pilasengine
pilas = pilasengine.iniciar()
class EscenaMenu(pilasengine.escenas.Escena):
def iniciar(self):
self.fondo_menu = pilas.fondos.Volley()
##############################################
self.Mi_Menu = pilas.actores.Menu(
[
(u'IR AL JUEGO', self.Ir_al_juego),
(u'SALIR DE PILAS', self.Salir_de_Pilas)
])
##############################################
Nombre_de_mi_juego = pilas.actores.Texto(u'MI GRAN JUEGO')
Nombre_de_mi_juego.color = pilas.colores.rojo
Nombre_de_mi_juego.y = 170
def actualizar(self):
pass
def Salir_de_Pilas(self):
pilas.terminar()
def Ir_al_juego(self):
pilas.escenas.EscenaJuego()
class EscenaJuego(pilasengine.escenas.Escena):
def iniciar(self):
self.fondo_juego = pilas.fondos.Tarde()
self.Mi_Actor = pilas.actores.Mono()
self.Mi_Actor.decir('Hola, estamos en la escena del juego !!!')
self.Boton_Volver =pilas.interfaz.Boton('Volver al Menu')
self.Boton_Volver.y = -100
self.Boton_Volver.conectar(self.Volver)
def Volver(self):
pilas.escenas.EscenaMenu()
def actualizar(self):
pass
pilas.escenas.vincular(EscenaMenu)
pilas.escenas.vincular(EscenaJuego)
pilas.escenas.EscenaJuego()
pilas.ejecutar()
Y ya para acabar…
8.- Indicamos que pilas inicie en la escena del Menu. Para eso cambiaremos donde antes habiamos puesto que iniciara en la escena del juego, casi al final de nuestro código…
pilas.escenas.vincular(EscenaMenu)
pilas.escenas.vincular(EscenaJuego)
#pilas.escenas.EscenaJuego() <------- QUITAMOS ESTA
pilas.escenas.EscenaMenu() # <------- Y PONEMOS ESTA.
pilas.ejecutar()
Y ya está, eso es todo… Ha sido facil, verdad ?
Espero que esto les ayude en la creación de menús y escenas
Un saludo.