diff --git a/administradorDeJuego.wlk b/administradorDeJuego.wlk index f8eeb83..a434f40 100644 --- a/administradorDeJuego.wlk +++ b/administradorDeJuego.wlk @@ -17,7 +17,7 @@ import proyectil.* class MyException inherits wollok.lang.Exception {} object administradorDeJuego { var property pausado = false - var property usuarioEnMenu = false + var property usuarioEnMenu = true @@ -127,7 +127,7 @@ object sonidoPartida{ method iniciarMusica() { musica.shouldLoop(true) game.schedule(1500, { musica.play() }) - musica.volume(0.5) + musica.volume(1) } method detenerMusica(){ musica.stop() @@ -161,7 +161,7 @@ object configuracion { method iniciarMusica() {sonidoPartida.iniciarMusica()} // Método para detener la música de fondo method detenerMusica() { - musica.stop() + sonidoPartida.detenerMusica() } // Método para agregar elementos visuales y configurar teclas de control method agregarVisuals() { @@ -239,3 +239,108 @@ object configuracion { // Método para eliminar todos los eventos programados de actualización (ticks) } + + +object menuInicial{ + var imagen="MenuInicial.png" + method position()=new MutablePosition(x=0,y=0) + method image() = imagen + var botonSeleccionado = 0 + var property botones=[botonDeInicio,botonMutearMusica] + method iniciarMenu(){ + botones.forEach({boton=>game.addVisual(boton)}) + + } + method finalizarMenu(){ + botones.forEach({boton=>game.removeVisual(boton)}) + administradorDeJuego.usuarioEnMenu(false) + game.removeVisual(self) + } + method moverseEntreBotones(){ + keyboard.right().onPressDo({ if(administradorDeJuego.usuarioEnMenu() && botonSeleccionado0 ) + { self.deseleccionarBoton() + botonSeleccionado-=1 + self.seleccionarBoton()}}) + + } + + method seleccionarBoton(){ + botones.get(botonSeleccionado).cambiarEstadoDeSeleccion(true) + } + + method deseleccionarBoton(){ + botones.get(botonSeleccionado).cambiarEstadoDeSeleccion(false) + } + method activarBoton(){ + keyboard.enter().onPressDo({ if(administradorDeJuego.usuarioEnMenu()){ + botones.get(botonSeleccionado).accion()}}) + } +} +object botonDeInicio{ + var imagen="botonInicioSeleccionado.png" + method image()=imagen + method position()= new MutablePosition(x=4,y=1) + method accion(){ + configuracion.agregarVisuals() + configuracion.crearTicks() + menuInicial.finalizarMenu() + } + + method cambiarEstadoDeSeleccion(estado){ + if(estado){ + self.ponerMarcoDeSeleccion() + } + else{self.quitarMarcoDeSeleccion()} + } + method ponerMarcoDeSeleccion(){ + imagen="botonInicioSeleccionado.png" + } + method quitarMarcoDeSeleccion(){ + imagen="botonInicio.png" + } + +} + +object botonMutearMusica{ + var imagen="botonMuteo.png" + method image()=imagen + method position()= new MutablePosition(x=13,y=1) + var muteada=true + method accion(){ + if (muteada){ + configuracion.iniciarMusica() + imagen="botonDesmuteoSeleccionado.png" + muteada=false + } + else { + configuracion.detenerMusica() + imagen="botonMuteoSeleccionado.png" + muteada=true + } + } + + method cambiarEstadoDeSeleccion(estado){ + if(estado){ + self.ponerMarcoDeSeleccion() + } + else{self.quitarMarcoDeSeleccion()} + } + method ponerMarcoDeSeleccion(){ + if(muteada){ + imagen="botonMuteoSeleccionado.png" + } + else imagen="botonDesmuteoSeleccionado.png" + } + method quitarMarcoDeSeleccion(){ + if(muteada){ + imagen="botonMuteo.png" + } + else imagen="botonDesmuteo.png" + + } + +} diff --git a/assets/MenuInicial.png b/assets/MenuInicial.png new file mode 100644 index 0000000..41a77a6 Binary files /dev/null and b/assets/MenuInicial.png differ diff --git a/assets/botonDesmuteo.png b/assets/botonDesmuteo.png new file mode 100644 index 0000000..74a2c70 Binary files /dev/null and b/assets/botonDesmuteo.png differ diff --git a/assets/botonDesmuteoSeleccionado.png b/assets/botonDesmuteoSeleccionado.png new file mode 100644 index 0000000..e891604 Binary files /dev/null and b/assets/botonDesmuteoSeleccionado.png differ diff --git a/assets/botonInicio.png b/assets/botonInicio.png new file mode 100644 index 0000000..03ee70c Binary files /dev/null and b/assets/botonInicio.png differ diff --git a/assets/botonInicioSeleccionado.png b/assets/botonInicioSeleccionado.png new file mode 100644 index 0000000..4f2b09b Binary files /dev/null and b/assets/botonInicioSeleccionado.png differ diff --git a/assets/botonMuteo.png b/assets/botonMuteo.png new file mode 100644 index 0000000..ac0801e Binary files /dev/null and b/assets/botonMuteo.png differ diff --git a/assets/botonMuteoSeleccionado.png b/assets/botonMuteoSeleccionado.png new file mode 100644 index 0000000..b8a2a96 Binary files /dev/null and b/assets/botonMuteoSeleccionado.png differ diff --git a/assets/pantallaPausa.png b/assets/pantallaPausa.png index a7153e6..ef98eb2 100644 Binary files a/assets/pantallaPausa.png and b/assets/pantallaPausa.png differ diff --git a/main.wpgm b/main.wpgm index 5de1c35..6d53afb 100644 --- a/main.wpgm +++ b/main.wpgm @@ -14,12 +14,15 @@ program juego { /* game.addVisual(pantalla) game.schedule(100, {pantalla.reproducirSonido()}) */ // - - game.removeVisual(pantalla) + game.addVisual(menuInicial) + menuInicial.iniciarMenu() + menuInicial.moverseEntreBotones() + menuInicial.activarBoton() + //game.removeVisual(pantalla) - configuracion.agregarVisuals() + /* configuracion.agregarVisuals() configuracion.crearTicks() - configuracion.iniciarMusica() + configuracion.iniciarMusica() */ //administradorDeJuego.pausado() //}) /* diff --git a/slime.wlk b/slime.wlk index cbef940..7867c1f 100644 --- a/slime.wlk +++ b/slime.wlk @@ -111,11 +111,9 @@ class Slime { } method estaMuerto()= {slime=> if (slime.llegoACasa()||slime.position().y()>4||slime.position().y()<0) { - game.sound("m.deathScreen.mp3").play() casa.recibirDanio(slime.position().y()) slime.eliminar() } else if (slime.sinVida()) { - game.sound("m.explosion.mp3").play() slime.eliminar() } return slime.sinVida() || slime.llegoACasa()