diff --git a/assets/cell1.png b/assets/cell1.png new file mode 100644 index 0000000..bf78888 Binary files /dev/null and b/assets/cell1.png differ diff --git a/assets/goku_Kamehameha_Derecha.png b/assets/goku_Kamehameha_Derecha.png new file mode 100644 index 0000000..c1ca927 Binary files /dev/null and b/assets/goku_Kamehameha_Derecha.png differ diff --git a/assets/goku_Kamehameha_Izquierda.png b/assets/goku_Kamehameha_Izquierda.png new file mode 100644 index 0000000..5c14c74 Binary files /dev/null and b/assets/goku_Kamehameha_Izquierda.png differ diff --git a/assets/kamehameha_Derecha.png b/assets/kamehameha_Derecha.png new file mode 100644 index 0000000..3d86cbe Binary files /dev/null and b/assets/kamehameha_Derecha.png differ diff --git a/assets/kamehameha_Izquierda.png b/assets/kamehameha_Izquierda.png new file mode 100644 index 0000000..e8f3a10 Binary files /dev/null and b/assets/kamehameha_Izquierda.png differ diff --git a/enemigos.wlk b/enemigos.wlk index 0ac7e98..d54a562 100644 --- a/enemigos.wlk +++ b/enemigos.wlk @@ -1,7 +1,7 @@ class Enemigo1{ var property position = game.at(4,16) var lado = 0 - method image() = "piopio.png" + method image() = "cell1.png" method moverseH(limite1, limite2){ game.onTick(500, self, {self.muevete(limite1, limite2)}) diff --git a/jugador.wlk b/jugador.wlk index 418658a..a266729 100644 --- a/jugador.wlk +++ b/jugador.wlk @@ -14,6 +14,10 @@ class Jugador inherits FiguraConMovimiento(position = game.at(1, 1)) { game.addVisualCharacter(self) } + method volver(){ + game.addVisualCharacter(self) + } + var property valor = "helado.png" method image() = valor @@ -25,12 +29,77 @@ class Jugador inherits FiguraConMovimiento(position = game.at(1, 1)) { method eliminate(){ game.removeVisual(self) } + + method atacarDerecha() = new KamehamehaDerecha().energia(self.position(), "goku_Kamehameha_Derecha.png", 1) + method atacarIzquierda() = new KamehamehaIzquierda().energia(self.position(), "goku_Kamehameha_Izquierda.png", -1) } object datosJugador { var property imagen = null } +object gokuAtacando { + var property position = null + var property lado = null + method image() = lado +} + +class KamehamehaDerecha{ + var personaje = null + + var property position = null + + method image() = "kamehameha_Derecha.png" + + method energia(posicion, lado, valor){ + gokuAtacando.lado(lado) + gokuAtacando.position(posicion) + self.position(game.at(posicion.x() + valor, posicion.y())) + if(!escenario.mismaPosicion(self.position())){ + game.addVisual(gokuAtacando) + personaje = game.allVisuals().filter({objeto => objeto.image() == datosJugador.imagen()}).head() + game.removeVisual(game.allVisuals().filter({objeto => objeto.image() == datosJugador.imagen()}).head()) + game.addVisual(self) + game.schedule(500, {self.avanzar()}) + } + } + + method lugarValido() = escenario.mismaPosicion(self.position()) + + method avanzar(){ + if(!escenario.mismaPosicion(game.at(self.position().x() + 1, self.position().y())) && self.position().x() + 1 < game.width() - 1){ + self.position(game.at(self.position().x() + 1, self.position().y())) + game.schedule(500, {self.avanzar()}) + } + else{ + personaje.position(gokuAtacando.position()) + personaje.volver() + self.eliminate() + } + } + + method eliminate(){ + game.removeVisual(gokuAtacando) + game.removeVisual(self) + } +} + +class KamehamehaIzquierda inherits KamehamehaDerecha{ + override method image() = "kamehameha_Izquierda.png" + + override method avanzar(){ + if(!escenario.mismaPosicion(game.at(self.position().x() - 1, self.position().y())) && self.position().x() - 1 > 0){ + self.position(game.at(self.position().x() - 1, self.position().y())) + game.schedule(500, {self.avanzar()}) + } + else{ + personaje.position(gokuAtacando.position()) + personaje.volver() + self.eliminate() + } + } +} + object points{ var frutasObtenidas = 0 method sumarFrutas(){ diff --git a/mainExample.wpgm b/mainExample.wpgm index 6107046..287c501 100644 --- a/mainExample.wpgm +++ b/mainExample.wpgm @@ -14,7 +14,8 @@ program BadIceCreamGame { game.height(18) game.width(18) //Inicio menu - menuPersonaje.cargar() + //menuPersonaje.cargar() + new MenuPersonaje().cargar() //inicio game.start() @@ -35,11 +36,15 @@ program BadIceCreamGame { } if(points.frutasObtenidas() == 30){ sincronizadorDePantallas.cambiarPantalla("ganador") - const menuGanaste = new MenuGanaste() - menuGanaste.cargar() + //const menuGanaste = new MenuGanaste() + //menuGanaste.cargar() + new MenuGanaste().cargar() } }) + keyboard.e().onPressDo({game.allVisuals().filter({objeto => objeto.image() == datosJugador.imagen()}).head().atacarDerecha()}) + keyboard.q().onPressDo({game.allVisuals().filter({objeto => objeto.image() == datosJugador.imagen()}).head().atacarIzquierda()}) + // Si tocas shift se gana el juego automaticamente. Asi cuando probamos no tenemos que jugarlo completo. Despues esto se saca. keyboard.shift().onPressDo({ @@ -48,7 +53,7 @@ program BadIceCreamGame { menuGanaste.cargar()})*/ new MenuGanaste().cargar()}) - game.onCollideDo(lineaEnemiga.enemigo(), {elemento => if(elemento.jugador()){ elemento.eliminate() sincronizadorDePantallas.cambiarPantalla("perdedor") menuPerdiste.cargar()}}) + game.onCollideDo(lineaEnemiga.enemigo(), {elemento => if(elemento.jugador()){ elemento.eliminate() sincronizadorDePantallas.cambiarPantalla("perdedor") new MenuPerdiste().cargar()}}) } object interactuador{ diff --git a/menus.wlk b/menus.wlk index 0d748d8..1ad10df 100644 --- a/menus.wlk +++ b/menus.wlk @@ -37,7 +37,7 @@ class Menus{ } -object menuPersonaje inherits Menus(add_1 = menuPersonajes, /* add_2 = marcoDeSeleccion,*/ moverA = marcoDeSeleccion, cantidadDeIncrementoParaPosiciones = 5, equisMax = 12, equisMin = 2, yeMax = 5, yeMin = 5, tipoDeMenu = "personajes"){ +class MenuPersonaje inherits Menus(add_1 = menuPersonajes, /* add_2 = marcoDeSeleccion,*/ moverA = marcoDeSeleccion, cantidadDeIncrementoParaPosiciones = 5, equisMax = 12, equisMin = 2, yeMax = 5, yeMin = 5, tipoDeMenu = "personajes"){ override method cargar(){ super() keyboard.enter().onPressDo({ @@ -135,11 +135,11 @@ class MenuGanaste inherits Menus(add_1 = ganaste, /*add_2 = seleccionGanaste,*/ }) } } -object menuPerdiste inherits Menus(add_1 = perdiste, /*add_2 = seleccionGanaste,*/ moverA = new SeleccionGanaste(), cantidadDeIncrementoParaPosiciones = 4, equisMax = 10, equisMin = 6, yeMax = 7, yeMin = 7, tipoDeMenu = "perdedor"){ +class MenuPerdiste inherits Menus(add_1 = perdiste, /*add_2 = seleccionGanaste,*/ moverA = new SeleccionGanaste(), cantidadDeIncrementoParaPosiciones = 4, equisMax = 10, equisMin = 6, yeMax = 7, yeMin = 7, tipoDeMenu = "perdedor"){ override method cargar(){ super() //game.removeVisual(jugador) - game.allVisuals().filter({objeto => objeto.image() == datosJugador.imagen()}).head().eliminate() + //game.allVisuals().filter({objeto => objeto.image() == datosJugador.imagen()}).head().eliminate() lineaEnemiga.enemigo().limpiarEnemigos() game.removeVisual(fondoJuego) game.removeVisual(points) diff --git a/miscelaneos.wlk b/miscelaneos.wlk index c060c8a..ea72790 100644 --- a/miscelaneos.wlk +++ b/miscelaneos.wlk @@ -40,6 +40,11 @@ class SeleccionGanaste{ method image() = "nivel_s.png" } +class SeleccionPerdiste{ + var property position = game.at(6, 5) + method image() = "nivel_s.png" +} + object bloqueado{ var property position = game.at(1, 1) method image() = "bloqueado.png"