Skip to content

Commit

Permalink
Modificar mapa, ObjetoVisible removido y test
Browse files Browse the repository at this point in the history
  • Loading branch information
Miranda-03 committed Nov 11, 2024
1 parent b9af00f commit 7606d47
Show file tree
Hide file tree
Showing 8 changed files with 68 additions and 77 deletions.
16 changes: 9 additions & 7 deletions enemigos.wlk
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import miscelaneos.*
import muros.*

class Enemigo1 inherits ObjetoVisible{
class Enemigo1{
//var lado = 0
var property vida
var property position = game.center()
var property velocidad = 300
var property apariencia = "piopio.png"
method image() = apariencia
override method esEnemigo() = true
// override method esEnemigo() = true

// [left, down, right, up]
var property vector_movimiento = [0, 1, 0, 0]
Expand All @@ -24,14 +24,16 @@ class Enemigo1 inherits ObjetoVisible{
}

method detectar_colisiones() {
game.onCollideDo(self, {elemento =>
/* game.onCollideDo(self, {elemento =>
if(elemento.soyBloque()){
self.volver()
self.cambiar_vector_movimiento()
}
})
}) */
}

method retroceder(){}

method volver() {
position = position.left(vector_movimiento.get(0) * -1)
.down(vector_movimiento.get(1) * -1)
Expand All @@ -58,12 +60,12 @@ class Enemigo1 inherits ObjetoVisible{
}

object lineaEnemiga{
var property enemigo = new Enemigo1(vida = 100)
var property enemigo = new Enemigo1(vida = 100)

method imagen(imagen){
enemigo.apariencia(imagen)
//enemigo.apariencia(imagen)
}
method activar(){
enemigo.activar_enemigo()
// enemigo.activar_enemigo()
}
}
88 changes: 41 additions & 47 deletions jugador.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,11 @@ import muros.*
import menus.menuPerdiste
import movimiento.*
import miscelaneos.*
import niveles.*

object jugador inherits FiguraConMovimiento(position = game.at(1, 1)) {

override method jugador() = true
// override method jugador() = true

method posicionate(){
self.position(game.at(1, 1))
Expand Down Expand Up @@ -40,67 +41,35 @@ object points{
object modificadorMapa{

var property position = jugador.position()
var property estado_accion = ponerBloque

method modBloques(direccion) {
game.addVisual(self)
self.position(jugador.position())
self.detectarSiguientePosicionValida(direccion)
}

method detectarSiguientePosicionValida(direccion){
self.moverPuntero(direccion)

if(niveles.mismaPosicion(self.position())) self.estado_accion(quitarBloque)
self.estado_accion().realizarAccion(self.position())

game.onTick(100, "mover-puntero", {
self.moverPuntero(direccion)
self.estado_accion().realizarAccion(self.position())
})
}

method eventosDelTeclado() {
keyboard.d().onPressDo({ self.modBloques(moverDerecha) })
keyboard.s().onPressDo({ self.modBloques(moverAbajo) })
keyboard.a().onPressDo({ self.modBloques(moverIzquierda) })
keyboard.w().onPressDo({ self.modBloques(moverArriba) })
}

method realizarAccion(accion, direccion){
if(accion == 2){
self.ponerBloques()
game.onTick(20, "mover-puntero", {self.moverPuntero(direccion) self.ponerBloques()})
}
if(accion == 1){
self.quitarBloques()
game.onTick(20, "mover-puntero", {self.moverPuntero(direccion) self.quitarBloques()})
}
if(accion == -1){
self.removerPuntero()
}
}

method removerPuntero() {
game.removeTickEvent("mover-puntero")
game.removeVisual(self)
}

method detectarSiguientePosicionValida(direccion){
var respuesta = 2
self.moverPuntero(direccion)
if(game.getObjectsIn(self.position()).any({elemento => return elemento.soyBloque()})) {respuesta = 1}
else if(game.getObjectsIn(self.position()).any({elemento => return elemento.esEnemigo()})) {respuesta = -1}
self.realizarAccion(respuesta, direccion)
}

method quitarBloques(){
if(game.getObjectsIn(self.position()).any({elemento => return elemento.soyBloque()})){
game.removeVisual(game.getObjectsIn(self.position()).find({elemento => return elemento.soyBloque()}))
//self.position(game.at(self.position().x(), self.position().y() + 1))
//game.removeVisual(game.getObjectsIn(self.position()).find({elemento => return elemento.esBloqueSuperior()}))
//self.position(game.at(self.position().x(), self.position().y() - 1))
}
else{
self.removerPuntero()
}
}

method ponerBloques(){
if(game.getObjectsIn(self.position()).any({elemento => return elemento.soyBloque()})){
self.removerPuntero()
}
else{
new Bloque().ubicarYDibujar(self.position().x(), self.position().y())
new BloqueSuperior().ubicarYDibujar(self.position().x(), self.position().y())
}
self.estado_accion(ponerBloque)
}

method moverPuntero(direccion){
Expand All @@ -109,4 +78,29 @@ object modificadorMapa{
.right(direccion.vector().get(2))
.up(direccion.vector().get(3))
}
}

object ponerBloque{
method realizarAccion(posicion){
if(!niveles.mismaPosicion(posicion)){
b.decodificar(posicion.x(), posicion.y())
new BloqueSuperior().ubicarYDibujar(posicion.x(), posicion.y())
}
else{
modificadorMapa.removerPuntero()
}
}
}

object quitarBloque {
method realizarAccion(posicion) {
if(niveles.mismaPosicion(posicion) && posicion.x() >= 1 && posicion.x() <= (game.width()-2) && posicion.y() >= 1 && posicion.y() <= (game.height()-2)){
niveles.quitarPosicion(posicion)
game.getObjectsIn(posicion).get(game.getObjectsIn(posicion).size() - 1).quitarBloque()
game.getObjectsIn(posicion).get(game.getObjectsIn(posicion).size() - 1).quitarBloque()
}
else{
modificadorMapa.removerPuntero()
}
}
}
13 changes: 2 additions & 11 deletions miscelaneos.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,6 @@ object finDelJuego{
method image() = "PP_final.png"
}

mixin ObjetoVisible {
method soyBloque() = false
method esPunto() = false
method jugador() = false
method esEnemigo() = false
method esFondo() = false
method esBloqueSuperior() = false
}

object moverAbajo{
method vector() = [0, 1, 0, 0]
}
Expand Down Expand Up @@ -64,11 +55,11 @@ object seleccionPerdiste{
}

//BACKGROUND
object fondoJuego inherits ObjetoVisible{
object fondoJuego{
var property position = game.origin()
var property valor = "f_slime.png"
method image() = valor
override method esFondo() = true
// override method esFondo() = true
}

//IMAGENES RELACIONADA A LOS PERSONAJES
Expand Down
2 changes: 1 addition & 1 deletion movimiento.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import muros.*
import miscelaneos.*
import niveles.*

class FiguraConMovimiento inherits ObjetoVisible{
class FiguraConMovimiento{
var position
method position() = position
method equisCorrecta(equis) = equis >= 1 && equis <= (game.width()-2)
Expand Down
13 changes: 8 additions & 5 deletions muros.wlk
Original file line number Diff line number Diff line change
@@ -1,19 +1,22 @@
import niveles.*
import miscelaneos.*

class Bloque inherits ObjetoVisible{
class Bloque{
var property position = game.center()
method image() = visual.valor()
method ubicarYDibujar(x,y){
self.position(game.at(x,y))
game.addVisual(self)
niveles.enlistarBloque(self)
}
method quitarBloque() = game.removeVisual(self)
method quitarBloque() {
game.removeVisual(self)
niveles.sacarBloqueDeLista(self)
}

override method soyBloque() = true
// override method soyBloque() = true
}
class BloqueSuperior inherits ObjetoVisible{
class BloqueSuperior {
var property position = game.center()
method image() = visualSuperior.valor()
method ubicarYDibujar(x,y){
Expand All @@ -22,7 +25,7 @@ class BloqueSuperior inherits ObjetoVisible{
}
method quitarBloque() = game.removeVisual(self)

override method esBloqueSuperior() = true
// override method esBloqueSuperior() = true
}

object visual{
Expand Down
1 change: 1 addition & 0 deletions niveles.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,7 @@ object niveles{

method mismaPosicion(posiblePosicion) = listaPosiciones.any({posicion => posicion == posiblePosicion})
method mismaPosicionPunto(posiblePosicion) = listaPuntos.any({posicion => posicion == posiblePosicion})
method quitarPosicion(posiblePosicion){ self.listaPosiciones().remove(self.listaPosiciones().find({posicion => posicion == posiblePosicion})) }

method enlistarObjeto(cosa) = listaPuntos.add(cosa)
method enlistarBloque(block) = listaBloques.add(block)
Expand Down
8 changes: 4 additions & 4 deletions pruebas.wtest
Original file line number Diff line number Diff line change
Expand Up @@ -45,16 +45,16 @@ describe "Group of tests for the player" {
test "Should place a block"{
game.addVisual(new Bloque(position = game.at(4, 1)))
modificadorMapa.modBloques(moverDerecha)
assert.that(game.getObjectsIn(game.at(2, 1)).any({elemento => elemento.soyBloque()}) &&
!(game.getObjectsIn(game.at(5, 1)).any({elemento => elemento.soyBloque()})))
assert.that(niveles.mismaPosicion(game.at(2, 1)) &&
!(niveles.mismaPosicion(game.at(5, 1))))
}

test "Should remove a block"{
game.addVisual(new Bloque(position = game.at(2, 1)))
game.addVisual(new Bloque(position = game.at(4, 1)))
modificadorMapa.modBloques(moverDerecha)
assert.notThat(game.getObjectsIn(game.at(2, 1)).any({elemento => elemento.soyBloque()}) &&
!(game.getObjectsIn(game.at(4, 1)).any({elemento => elemento.soyBloque()})))
assert.notThat(!(niveles.mismaPosicion(game.at(2, 1))) &&
(niveles.mismaPosicion(game.at(4, 1))))
}
}

Expand Down
4 changes: 2 additions & 2 deletions puntos.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ import muros.*
import miscelaneos.*
import niveles.*

class Punto inherits ObjetoVisible{
class Punto{
var property position = posicionAleatoria.generarPosicionAleatoria()
var valor = spawn.puntos().get(0)

override method esPunto() = true
// override method esPunto() = true

method image(){
return valor
Expand Down

0 comments on commit 7606d47

Please sign in to comment.