From e65cf011f6fe87b55e600c4f5e3df85c85cfa0d2 Mon Sep 17 00:00:00 2001 From: Valentin-Sosa Date: Wed, 6 Nov 2024 12:41:53 -0300 Subject: [PATCH] Funcionamiento del cubo --- elementos.wlk | 15 +++++++++++---- mapa.wlk | 1 + personajes.wlk | 16 ++++++++++++++-- 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/elementos.wlk b/elementos.wlk index e452146..5bb16fe 100644 --- a/elementos.wlk +++ b/elementos.wlk @@ -6,6 +6,8 @@ class Elemento method puedeSerAtravesado() = true method puedeSerPresionado() = false method puedePresionarBoton() = false + method puedeSerMovido() = false + method tratarColision(personaje) {} } class Elevador { @@ -40,7 +42,6 @@ const elevadorPorPalanca = new Elevador (posicionInicial = game.at(0, 6)) class Boton inherits Elemento { method image() = "boton2.png" - method tratarColision(personaje) {} method estaPresionado() { @@ -65,7 +66,6 @@ object palanca inherits Elemento (position = game.at(3, 4)) { method image() = "palanca.png" override method puedeSerPresionado() = true - method tratarColision(personaje){} method activar() { if(elevadorPorPalanca.activado()) elevadorPorPalanca.cambiarEstado(false) @@ -79,16 +79,23 @@ object cubo inherits Elemento (position = game.at(6, 10)) method image() = "cubo.png" override method puedeSerAtravesado() = false override method puedePresionarBoton() = true + override method puedeSerMovido() = true + + method moverse(desplazamiento) + { + position = game.at(position.x() + desplazamiento, position.y()) + game.sound("bloque.ogg").play() + } } object puertaFuego inherits Elemento (position = game.at(12, 14)) { method image() = "puertaFuego.png" - method tratarColision(personaje) {} + override method tratarColision(personaje) {} } object puertaAgua inherits Elemento (position = game.at(8, 14)) { method image() = "puertaAgua.png" - method tratarColision(personaje) {} + override method tratarColision(personaje) {} } \ No newline at end of file diff --git a/mapa.wlk b/mapa.wlk index 6c4a160..cc8a78a 100644 --- a/mapa.wlk +++ b/mapa.wlk @@ -83,6 +83,7 @@ class Bloque const property position method puedeSerPresionado() = false method puedeSerAtravesado() = true + method puedeSerMovido() = false } diff --git a/personajes.wlk b/personajes.wlk index a97fcc5..d05c77e 100644 --- a/personajes.wlk +++ b/personajes.wlk @@ -6,6 +6,8 @@ class Personaje { method tratarColision(personaje) {} method puedeSerAtravesado() = true method puedePresionarBoton() = true + method puedeSerMovido() = false + method puedeSerPresionado() = false method moverse(nuevaPosicion) { @@ -78,8 +80,8 @@ object fireboy inherits Personaje (position = game.at(0, 0)) { method presionar() { - const presionable = game.getObjectsIn(self.position()).head() - if(presionable.puedeSerPresionado()) presionable.activar() + const elemento = game.getObjectsIn(self.position()).head() + if(elemento.puedeSerPresionado()) elemento.activar() } } @@ -90,5 +92,15 @@ object watergirl inherits Personaje (position = game.at(0, 2)) { method moverElemento() { + const elementosIzquierda = game.getObjectsIn(self.position().left(1)) + const elementosDerecha = game.getObjectsIn(self.position().right(1)) + if(elementosIzquierda.size() > 0) + { + elementosIzquierda.forEach({elemento => if(elemento.puedeSerMovido()) elemento.moverse(-1)}) + } + else if(elementosDerecha.size() > 0) + { + elementosDerecha.forEach({elemento => if(elemento.puedeSerMovido()) elemento.moverse(1)}) + } } } \ No newline at end of file