Skip to content

Commit

Permalink
Funcio niveles y escenario
Browse files Browse the repository at this point in the history
  • Loading branch information
OrianaIsabel committed Nov 10, 2024
1 parent 2c02bef commit b9af00f
Show file tree
Hide file tree
Showing 6 changed files with 137 additions and 13 deletions.
9 changes: 5 additions & 4 deletions juego.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import muros.*
import enemigos.*
import puntos.*
import miscelaneos.*
import niveles.*

object juego{
//DIBUJO DE LOS ELEMENTOS DEL MUNDO
Expand All @@ -12,9 +13,9 @@ object juego{
//dibujar fondo
game.addVisual(fondoJuego)
//dibujar lateral superior
escenarioNivel.generarLateralSuperior()
niveles.generarLateralSuperior()
//dibujar muros
escenarioNivel.generarEscenario()
niveles.generarEscenario()
//dibujar enemigo
lineaEnemiga.activar()
//dibujar jugador
Expand All @@ -25,7 +26,7 @@ object juego{
//dibujar puntos
game.addVisual(points)
//dibujar superior
escenarioNivel.generarBloquesSuperiores()
niveles.generarBloquesSuperiores()
//reproducir la musica correspondiente
musicaDeFondo.play()
}
Expand All @@ -36,7 +37,7 @@ object juego{
lineaEnemiga.enemigo().limpiarEnemigos()
game.removeVisual(fondoJuego)
game.removeVisual(points)
escenarioNivel.limpiarEscenario()
niveles.limpiarEscenario()
musicaDeFondo.stop()
}

Expand Down
3 changes: 2 additions & 1 deletion menus.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import mainExample.*
import muros.*
import miscelaneos.*
import juego.*
import niveles.*

class Menus{
const add_1
Expand Down Expand Up @@ -55,7 +56,7 @@ object menuNivel inherits Menus(add_1 = menuNiveles, add_2 = seleccionNivel, can
if(sincronizadorDePantallas.pantallaActual() == tipoDeMenu){
sincronizadorDePantallas.cambiarPantalla("jugar")
const nivel = (add_2.position().x()-1)/2
escenarioNivel.nivel(nivel)
niveles.nivel(nivel)
self.limpiarPantalla()
juego.jugar()
}
Expand Down
3 changes: 2 additions & 1 deletion movimiento.wlk
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
import muros.*
import miscelaneos.*
import niveles.*

class FiguraConMovimiento inherits ObjetoVisible{
var position
method position() = position
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()) && !escenarioNivel.mismaPosicion(posicion)){
if(self.equisCorrecta(posicion.x()) && self.yeCorrecta(posicion.y()) && !niveles.mismaPosicion(posicion)){
position = game.at(posicion.x(), posicion.y())
}
}
Expand Down
6 changes: 3 additions & 3 deletions muros.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ class Bloque inherits ObjetoVisible{
method ubicarYDibujar(x,y){
self.position(game.at(x,y))
game.addVisual(self)
escenarioNivel.enlistarBloque(self)
niveles.enlistarBloque(self)
}
method quitarBloque() = game.removeVisual(self)

Expand All @@ -31,7 +31,7 @@ object visual{
object visualSuperior{
var property valor = "b_fiesta_sup.png"
}

/*
object escenarioNivel{
const property listaPosiciones = []
const property listaPuntos = []
Expand Down Expand Up @@ -69,4 +69,4 @@ object escenarioNivel{
method quitarObjeto(cosa) = listaPuntos.remove(cosa)
method sacarBloqueDeLista(block) = listaBloques.remove(block)
}
}*/
124 changes: 122 additions & 2 deletions niveles.wlk
Original file line number Diff line number Diff line change
@@ -1,7 +1,95 @@
import miscelaneos.*
import muros.*
/*
class Nivel {
const matrizPosiciones
method entregarFila(fila) = matrizPosiciones.get(fila)
const property listaPosiciones = []
const property listaPuntos = []
const property listaBloques = []
method generarEscenario(){
(16 .. 0).forEach({y => const listaAux = self.entregarFila(17-y)
(0..17).forEach({x => const aux = listaAux.get(x)
aux.decodificar(x, y)})
})
}
method generarBloquesSuperiores(){//para crear la ilusion de que el jugador está detrás del bloque
(16 .. 0).forEach({y => const listaAux = self.entregarFila(17-y)
(0..17).forEach({x => const aux = listaAux.get(x) aux.decodificarSuperior(x, y)})
})
}
method generarLateralSuperior(){
(17..0).forEach({x => listaPosiciones.add(game.at(x,17)) new Bloque().ubicarYDibujar(x,17)})
}
method limpiarBloques() = listaBloques.forEach({block => block.quitarBloque() listaBloques.remove(block)})
method limpiarPuntos() = listaPuntos.forEach({punto => listaPuntos.remove(punto)})
method limpiarEscenario() {
self.limpiarBloques()
self.limpiarPuntos()
}
method mismaPosicion(posiblePosicion) = listaPosiciones.any({posicion => posicion == posiblePosicion})
method mismaPosicionPunto(posiblePosicion) = listaPuntos.any({posicion => posicion == posiblePosicion})
method enlistarObjeto(cosa) = listaPuntos.add(cosa)
method enlistarBloque(block) = listaBloques.add(block)
method quitarObjeto(cosa) = listaPuntos.remove(cosa)
method sacarBloqueDeLista(block) = listaBloques.remove(block)
}
const nivel1 = new Nivel(
matrizPosiciones = [[b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b],
[b,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,b],
[b,n,b,b,b,n,n,n,n,n,n,n,n,b,b,b,n,b],
[b,n,b,n,b,n,n,n,n,n,n,n,n,b,n,b,n,b],
[b,n,b,n,b,n,n,n,n,n,n,n,n,b,n,b,n,b],
[b,n,b,n,b,n,n,n,n,n,n,n,n,b,n,b,n,b],
[b,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,b],
[b,n,n,n,n,n,n,b,b,b,b,n,n,n,n,n,n,b],
[b,n,n,n,n,n,n,n,b,b,n,n,n,n,n,n,n,b],
[b,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,b],
[b,n,n,n,n,n,n,n,b,b,n,n,n,n,n,n,n,b],
[b,n,n,n,n,n,n,n,b,b,n,n,n,n,n,n,n,b],
[b,n,n,b,n,n,n,n,b,b,n,n,n,n,b,n,n,b],
[b,n,n,n,b,b,n,n,b,b,n,n,b,b,n,n,n,b],
[b,n,n,n,n,n,b,b,n,n,b,b,n,n,n,n,n,b],
[b,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,b],
[b,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,b],
[b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b]]
)
const nivel2 = new Nivel(
matrizPosiciones = [[b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b],
[b,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,b],
[b,n,n,n,n,n,b,b,b,b,b,b,b,b,n,n,n,b],
[b,n,n,n,b,b,n,n,n,n,n,n,n,n,b,n,n,b],
[b,n,b,b,n,n,n,b,b,b,b,b,b,n,b,n,n,b],
[b,n,b,n,n,n,b,n,n,n,n,n,b,n,n,b,n,b],
[b,n,b,n,b,b,n,n,b,b,b,n,n,b,n,b,n,b],
[b,n,b,n,b,n,n,b,n,n,n,b,n,b,n,b,n,b],
[b,n,b,n,b,n,b,n,n,b,n,b,n,b,n,b,n,b],
[b,n,b,n,b,n,b,b,b,n,n,b,n,b,n,b,n,b],
[b,n,b,n,b,n,n,n,n,n,b,n,n,b,n,b,n,b],
[b,n,b,n,b,b,b,b,b,b,n,n,b,b,n,b,n,b],
[b,n,b,n,n,n,n,n,n,n,n,b,n,n,n,b,n,b],
[b,n,n,b,b,b,b,b,b,b,b,n,n,b,b,n,n,b],
[b,n,n,n,n,n,n,n,n,n,n,b,b,n,n,n,n,b],
[b,n,n,b,b,b,b,b,b,b,b,n,n,n,n,n,n,b],
[b,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,b],
[b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b]]
)
*/
object niveles{
const property listaPosiciones = []
const property listaPuntos = []
const property listaBloques = []
var property nivel = 0

const nivel1 = [[b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b],
[b,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,b],
[b,n,b,b,b,n,n,n,n,n,n,n,n,b,b,b,n,b],
Expand Down Expand Up @@ -40,13 +128,45 @@ object niveles{
[b,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,b],
[b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b]]

method entregarFila(fila, nivel) = if(nivel == 0) nivel1.get(fila) else nivel2.get(fila)
method entregarFila(fila, nivelPedido) = if(nivelPedido == 0) nivel1.get(fila) else nivel2.get(fila)

method generarEscenario(){
(16 .. 0).forEach({y => const listaAux = self.entregarFila(17-y, nivel)
(0..17).forEach({x => const aux = listaAux.get(x)
aux.decodificar(x, y)})
})
}
method generarBloquesSuperiores(){//para crear la ilusion de que el jugador está detrás del bloque
(16 .. 0).forEach({y => const listaAux = self.entregarFila(17-y, nivel)
(0..17).forEach({x => const aux = listaAux.get(x) aux.decodificarSuperior(x, y)})
})
}

method generarLateralSuperior(){
(17..0).forEach({x => listaPosiciones.add(game.at(x,17)) new Bloque().ubicarYDibujar(x,17)})
}

method limpiarBloques() = listaBloques.forEach({block => block.quitarBloque() listaBloques.remove(block)})
method limpiarPuntos() = listaPuntos.forEach({punto => listaPuntos.remove(punto)})
method limpiarEscenario() {
self.limpiarBloques()
self.limpiarPuntos()
}

method mismaPosicion(posiblePosicion) = listaPosiciones.any({posicion => posicion == posiblePosicion})
method mismaPosicionPunto(posiblePosicion) = listaPuntos.any({posicion => posicion == posiblePosicion})

method enlistarObjeto(cosa) = listaPuntos.add(cosa)
method enlistarBloque(block) = listaBloques.add(block)

method quitarObjeto(cosa) = listaPuntos.remove(cosa)
method sacarBloqueDeLista(block) = listaBloques.remove(block)
}

object b {
method decodificar(x,y)
{
escenarioNivel.listaPosiciones().add(game.at(x,y))
niveles.listaPosiciones().add(game.at(x,y))
new Bloque().ubicarYDibujar(x,y)
}
method decodificarSuperior(x,y) = new BloqueSuperior().ubicarYDibujar(x, y)
Expand Down
5 changes: 3 additions & 2 deletions puntos.wlk
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import muros.*
import miscelaneos.*
import niveles.*

class Punto inherits ObjetoVisible{
var property position = posicionAleatoria.generarPosicionAleatoria()
Expand Down Expand Up @@ -42,10 +43,10 @@ object posicionAleatoria {
const x = self.generarPosX()
const y = self.generarPosY()

if(escenarioNivel.mismaPosicion(game.at(x, y)) || escenarioNivel.mismaPosicionPunto(game.at(x, y))){
if(niveles.mismaPosicion(game.at(x, y)) || niveles.mismaPosicionPunto(game.at(x, y))){
return self.generarPosicionAleatoria()
}
escenarioNivel.enlistarObjeto(game.at(x, y))
niveles.enlistarObjeto(game.at(x, y))
return game.at(x, y)
}
}

0 comments on commit b9af00f

Please sign in to comment.