#CÓDIGO INDEXADO POR ADMINISTRADOR.
#POR FAVOR, REVISA CÓMO INDEXAR CORRECTAMENTE TU CÓDIGO
#EN EL MENSAJE DE BIENVENIDA AL FORO. GRACIAS.
import pilasengine
import os
import random
pilas = pilasengine.iniciar()
#cancion_de_fondo = pilas.musica.cargar('Combo_Breaker_Japan.mp3')
#cancion_de_fondo.reproducir()
### Algunas funciones para el juego ###
###def lista_palabras()
def volveralmenu():
pilas.escenas.EscenaMenu()
#"""class IngresoTexto(pilasengine.interfaz.ingreso_de_texto):"""
def iniciar_juego():
pilas.escenas.EscenaJuego()
def records():
pilas.escenas.EscenaRecords()
def salir_del_juego():
pilas.terminar()
cancion_de_fondo.detener()
class TextoEnemigo(pilasengine.actores.Texto):
def __init__(self, *k, **kw):
pilasengine.actores.Texto.__init__(self, *k, **kw)
self.post_iniciar()
def post_iniciar(self):
self.x = pilas.azar(-200, 200)
self.y = 290
self.velocidad = pilas.azar(10, 11) / 5.0
def actualizar(self):
self.y -= self.velocidad
# Elimina el objeto cuando sale de la pantalla.
if self.y < -300:
self.eliminar()
class EscenaMenu(pilasengine.escenas.Escena):
def iniciar(self):
MenuPrincipal = pilas.fondos.Tarde()
mennu = pilas.actores.Menu([('Iniciar juego', iniciar_juego),
('Records', records),
('Salir', salir_del_juego)])
mennu.color = "amarillo"
mennu.escala =1.3
self._crear_el_titulo_del_juego()
def _crear_el_titulo_del_juego(self):
titulo = self.pilas.actores.Texto("MATA PALABRAS", magnitud=30, y=50)
titulo.y = 300
titulo.rotacion = 30
titulo.y = [100], 1
titulo.rotacion = [0], 1.2
listas = ["BAUTISTA","SILLA","MURCIELAGO","MESA",
"PROGRAMA","FACTURA","ARQUITECTURA","CARA"]
class EscenaJuego(pilasengine.escenas.Escena):
def iniciar(self):
self.pilas.fondos.Galaxia(dy=-5)
#fondo = pilas.fondos.Galaxia(dy=-5)
self.pilas.tareas.siempre(3, self._crear_un_actor_texto)
#self.pilas.eventos.click_de_mouse.conectar(self._cuando_hace_click)
self.puntaje = pilas.actores.Puntaje(290, 200, color="blanco")
self.crear_ingreso_de_texto()
self.textos_en_pantalla = []
def _crear_un_actor_texto(self):
#actor = TextoEnemigo(pilas, texto="BAUTISTA")
#enemigos.agregar(actor)
hasta = len(listas)
texto = listas[pilas.azar(0, hasta-1)]
actor = self.pilas.actores.TextoEnemigo(texto)
self.textos_en_pantalla.append(actor)
def crear_ingreso_de_texto(self):
self.ingreso = self.pilas.interfaz.IngresoDeTexto("", y=-200)
self.tareas.siempre(0.2, self._revisar_textos_a_eliminar)
def _revisar_textos_a_eliminar(self):
for actor in self.textos_en_pantalla:
if actor.esta_eliminado():
continue
#print([actor.texto], "-", [self.ingreso.texto])
if self.ingreso.texto and str(actor.texto).lower() in str(self.ingreso.texto).lower():
self.ingreso.texto = ""
self.textos_en_pantalla.remove(actor)
#self.pilas.actores.Explosion(actor.x, actor.y)
actor.eliminar()
print("Eliminando actor:", actor.texto)
class TextoEnemigo(pilasengine.actores.Texto):
def __init__(self, *k, **kw):
pilasengine.actores.Texto.__init__(self, *k, **kw)
self.post_iniciar()
def post_iniciar(self):
self.x = pilas.azar(-200, 200)
self.y = 290
self.velocidad = pilas.azar(10, 11) / 5.0
def actualizar(self):
self.y -= self.velocidad
# Elimina el objeto cuando sale de la pantalla.
if self.y < -250:
self.eliminar()
class EscenaRecords(pilasengine.escenas.Escena):
def iniciar(self):
fondoh = pilas.fondos.Noche()
#fondoh.imagen = pilas.imagenes.cargar("EscenaRecords.png")
menuu = pilas.actores.Menu([('Volver al menu', volveralmenu)])
menuu.y = -200
## Vinculamos todas las escenas.
pilas.escenas.vincular(EscenaMenu)
pilas.escenas.vincular(EscenaJuego)
pilas.escenas.vincular(EscenaRecords)
## Vinculamos los actores Personalizados
#pilas.actores.vincular(BotonVolver)
pilas.actores.vincular(TextoEnemigo)
#pilas.actores.vincular(ActorEliminado)
#pilas.actores.vincular(IngresoTexto)
# Se inicia la escena principal.
#pilas.escenas.EscenaMenu()
pilas.escenas.EscenaJuego()
pilas.ejecutar()
Buenas, @jessirodriguez16 !
Disculpa, pero no entiendo tu pregunta… He testado tu juego y la vinculación de escenas funciona correctamente
Lo único que tenías puesto que empezara por la EscenaJuego() en vez de la EscenaMenu()
Simplemente tienes que comentar la linea que llama a la escena del juego, y descomentar la linea que llama a la escena del menú:
# Se inicia la escena principal.
pilas.escenas.EscenaMenu()
#pilas.escenas.EscenaJuego()
Un saludo!
hola, hice lo que me dijiste y me sale error, lo que yo quiero es que empiece con el menú y me salga las opciones de juego, una ves que entras al juego caen las palabras y la tenes que escribir bien, pero eso tampoco anda, escribe la palabra pero no las guarda
Buenas, @jessirodriguez16!
Como ya te dije testé tu juego y las escenas funcionaron correctamente.
Para entrar primero al menú simplemente cambié lo que ya te expliqué y funcionó a la primera.
Qué error es el que te da???
El tema de las palabras que no se borran sí que ví que algunas se borraban y algunas no. Quizás tu código sea un tanto complicado??? No veo el por qué usaste los init cuando en pilasengine no hacen falta, basta con usar la def iniciar():
Recuerdo que hace unos meses hice un juego con la misma mecánica… quizás el enlace te sirva para guiarte mejor:
Un saludo!