From 0547fdf9393bf7776113ef4e42e6d7a5d72747ec Mon Sep 17 00:00:00 2001 From: LucianoSantinoValenzuelaMaltas Date: Thu, 7 Nov 2024 20:56:59 -0300 Subject: [PATCH] =?UTF-8?q?Mutable=20Position=20a=20los=20ataques=20de=20G?= =?UTF-8?q?ok=C3=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- enemigos.wlk | 1 + jugador.wlk | 40 +++++++++++++++++++++++++++------------- movimiento.wlk | 39 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 67 insertions(+), 13 deletions(-) diff --git a/enemigos.wlk b/enemigos.wlk index 67ff381..3dbf116 100644 --- a/enemigos.wlk +++ b/enemigos.wlk @@ -4,6 +4,7 @@ import menus.* class Enemigo1{ var property position = game.at(4,16) + //const position = new MutablePosition() var lado = 0 var property vida method image() = "cell1.png" diff --git a/jugador.wlk b/jugador.wlk index d072752..0ef63d5 100644 --- a/jugador.wlk +++ b/jugador.wlk @@ -54,7 +54,8 @@ object datosJugador { } object gokuAtacando { - var property position = null + //var property position = null + const property position = new PosicionVariable() var property lado = null method image() = lado @@ -68,10 +69,27 @@ object gokuAtacando { } +class PosicionVariable inherits MutablePosition{ + method x(pos){ + x = pos + } + method y(pos){ + y = pos + } + method sumarPos(posX, posY){ + x = x + posX + y = y + posY + } + method establecerPos(posX, posY){ + x = posX + y = posY + } +} + class KamehamehaDerecha{ var personaje = null var property impacto = 0 - var property position = null + const property position = new PosicionVariable(x = 1, y = 1) const property sonido = game.sound("Kamehameha.mp3") method efectoSonoro() { @@ -88,8 +106,8 @@ class KamehamehaDerecha{ method energia(posicion, lado, valor){ gokuAtacando.lado(lado) - gokuAtacando.position(posicion) - self.position(game.at(posicion.x() + valor, posicion.y())) + gokuAtacando.position().establecerPos(posicion.x(), posicion.y()) + position.establecerPos(posicion.x() + valor, posicion.y()) if(!escenario.mismaPosicion(self.position())){ self.efectoSonoro() game.addVisual(gokuAtacando) @@ -100,11 +118,11 @@ class KamehamehaDerecha{ } } - method lugarValido() = escenario.mismaPosicion(self.position()) + method lugarValido() = escenario.mismaPosicion(game.at(position.x(), position.y())) method avanzar(){ - if(!escenario.mismaPosicion(game.at(self.position().x() + 1, self.position().y())) && self.position().x() + 1 < game.width() - 1 && impacto < 1 && sincronizadorDePantallas.pantallaActual() != "perdedor"){ - self.position(game.at(self.position().x() + 1, self.position().y())) + if(!escenario.mismaPosicion(game.at(position.x() + 1, position.y())) && position.x() + 1 < game.width() - 1 && impacto < 1 && sincronizadorDePantallas.pantallaActual() != "perdedor"){ + position.goRight(1) game.schedule(500, {self.avanzar()}) } else{ @@ -117,11 +135,9 @@ class KamehamehaDerecha{ self.eliminate() gokuAtacando.eliminate() if(sincronizadorDePantallas.pantallaActual() == "perdedor"){ - //jugador.eliminate() new MenuPerdiste().cargar() } if(sincronizadorDePantallas.pantallaActual() == "ganador"){ - //jugador.eliminate() new MenuGanaste().cargar() } } @@ -137,8 +153,8 @@ 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 && impacto < 1 && sincronizadorDePantallas.pantallaActual() != "perdedor"){ - self.position(game.at(self.position().x() - 1, self.position().y())) + if(!escenario.mismaPosicion(game.at(position.x() - 1, position.y())) && position.x() - 1 > 0 && impacto < 1 && sincronizadorDePantallas.pantallaActual() != "perdedor"){ + position.goLeft(1) game.schedule(500, {self.avanzar()}) } else{ @@ -151,11 +167,9 @@ class KamehamehaIzquierda inherits KamehamehaDerecha{ self.eliminate() gokuAtacando.eliminate() if(sincronizadorDePantallas.pantallaActual() == "perdedor"){ - //jugador.eliminate() new MenuPerdiste().cargar() } if(sincronizadorDePantallas.pantallaActual() == "ganador"){ - //jugador.eliminate() new MenuGanaste().cargar() } } diff --git a/movimiento.wlk b/movimiento.wlk index 1a3e95f..bf623c2 100644 --- a/movimiento.wlk +++ b/movimiento.wlk @@ -1,5 +1,8 @@ import muros.* +import jugador.* + + /* class FiguraConMovimiento{ @@ -15,6 +18,42 @@ class FiguraConMovimiento{ position = game.at(posicion.x(), posicion.y()) } } +} +*/ +/* +mixin Limites{ + var position + + method position() = position + + method equisCorrecta(equis) = equis >= 1 && equis <= (game.width()-2) + + method yeCorrecta(ye) = ye >= 1 && ye <= (game.height()-2) +} + +mixin Movimiento inherits Limites{ + method position(posicion){ + if(self.equisCorrecta(posicion.x()) && self.yeCorrecta(posicion.y()) && !escenario.mismaPosicion(posicion)){ + self.position().establecerPos(posicion.x(), posicion.y()) + } + } +} + +class FiguraConMovimiento inherits Movimiento{}*/ +/* +class FiguraConMovimiento inherits MutablePosition{ + + method equisCorrecta(equis) = equis >= 1 && equis <= (game.width()-2) + + method yeCorrecta(ye) = ye >= 1 && ye <= (game.height()-2) + + method position(posicion){ + if(self.equisCorrecta(posicion.x()) && self.yeCorrecta(posicion.y()) && !escenario.mismaPosicion(posicion)){ + //self.position().establecerPos(posicion.x(), posicion.y()) + x = posicion.x() + y = posicion.y() + } + } }*/ mixin Limites{