Buenos dias, acabo de entrar al mundo del pilas y necesito un poco de ayuda. Encontre en este foro un codigo sobre un juego de suma, y lo adapte a multipliaciones (ninguna modificacion de otro planeta, solo jugando con la interfaz).
Mis consultas son las siguentes:
1)Como puedo poner un menu que me deje elegir el juego o salir? lo intente con el del manual pero inicia el juego y queda el menu clavado de fondo, no desaparece. Y tampoco logro hacer que el juego “salga” cuando apretas esa opcion.
2)En este juego sumas 1 punto por respuesta correcta y restas 2 por incorrecta. Se empieza con 10 puntos. Mi idea es que al llegar a 20 el juego termine y “gane el jugador” o al llegar a 0 también termine y pierda el jugador. Y al terminar salga un texto y vuelva al menu principal.
La base de esta idea es una vez logre entender esto, no solo sea multiplicacion sino varias operaciones.
Desde ya les agradezco su tiempo, a continuacion les dejo el codigo (no es de mi autoria)
import pilasengine
pilas = pilasengine.iniciar()
puntaje = pilas.actores.Puntaje(texto=10,color='azul')
puntaje.x = -300
puntaje.y = 220
def reiniciar():
# Obtiene todos los actores de la pantalla.
actores = pilas.actores.listar_actores()
# Elimina todos los actores excepto el fondo y el puntaje
for actor in actores:
if actor not in [puntaje, pilas.escena.fondo]:
actor.eliminar()
# Genera una pregunta nueva
crear_una_nueva_pregunta()
def crear_una_nueva_pregunta():
#PREGUNTA
pilas.fondos.Tarde() #fondo para manzanas
preg1 = pilas.azar(0,10)
preg2 = pilas.azar(0,10)
pregunta = pilas.actores.Texto("Cuanto es: " + str(preg1) + " * " + str(preg2),
y=180,magnitud=25)
#aca reemplaze las cajas por manzanas (cajas escala=2, manzanas escala=1)
caja1 = pilas.actores.Manzana(x = -200, y = 70)
caja1.imagen = "Manzana.png"
caja1.escala = 1
caja1.esverdadera = False
caja2 = pilas.actores.Manzana(x = 0, y = 70)
caja2.imagen = "Manzana.png"
caja2.escala = 1
caja2.esverdadera = False
caja3 = pilas.actores.Manzana(x = 200, y = 70)
caja3.imagen = "Manzana.png"
caja3.escala = 1
caja3.esverdadera = False
#DEFINO RESPUESTAS
rta_1 = pilas.actores.Texto("",x=-200, y=70)
rta_2 = pilas.actores.Texto("",x = 0, y = 70)
rta_3 = pilas.actores.Texto("",x = 200, y = 70)
#caja verdader
cajas_posibles = [caja1,caja2,caja3]
textos_posibles = [rta_1,rta_2,rta_3]
indiceok = pilas.azar(0,2)
respuesta_verdadera = cajas_posibles[indiceok]
respuesta_verdadera.esverdadera = True
texto_de_respuestaok = textos_posibles[indiceok]
texto_de_respuestaok.texto = str(preg1*preg2)
#cajas falsas
if caja1.esverdadera:
rta_2.texto = str(pilas.azar(0,100))
rta_3.texto = str(pilas.azar(0,100))
elif caja2.esverdadera:
rta_1.texto = str(pilas.azar(0,100))
rta_3.texto = str(pilas.azar(0,100))
elif caja3.esverdadera:
rta_1.texto = str(pilas.azar(0,100))
rta_2.texto = str(pilas.azar(0,100))
#ACA EL MONO
mono = pilas.actores.Mono(y=-150)
mono.aprender(pilas.habilidades.Arrastrable)
#COLISIONES
cajas = [caja1,caja2,caja3]
pilas.colisiones.agregar(mono,cajas,respuesta)
def respuesta(mono, caja):
if caja.esverdadera:
mono.decir("MUY BIEN")
# Genera una estrella para mostrar que contesto
# bien
estrella = pilas.actores.Estrella()
estrella.x = caja.x
estrella.y = caja.y
estrella.escala = 0.2
estrella.escala = [2, 1] * 2
# aumenta el puntaje
puntaje.aumentar()
# Reinicia el juego pasados los 2 segundos.
pilas.tareas.una_vez(2, reiniciar)
else:
bum=pilas.actores.Explosion()
bum.x=caja.x
bum.y=caja.y
bum.escala= 0.2
bum.escala = [2,1]*2
mono.decir("CUALQUIERA")
pilas.camara.vibrar()
caja.eliminar()
puntaje.aumentar(-2)
crear_una_nueva_pregunta()