Skip to content

Commit

Permalink
Menús bug
Browse files Browse the repository at this point in the history
  • Loading branch information
LucianoSantinoValenzuelaMaltas committed Oct 25, 2024
1 parent 3a00398 commit 552df24
Show file tree
Hide file tree
Showing 5 changed files with 78 additions and 34 deletions.
9 changes: 7 additions & 2 deletions jugador.wlk
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
import muros.*

import menus.menuPerdiste
import menus.*

import movimiento.*

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

method jugador() = true

method posicionate(){
//self.position().clear()
self.position(game.at(1, 1))
game.addVisualCharacter(self)
}
Expand All @@ -26,6 +27,10 @@ object jugador inherits FiguraConMovimiento(position = game.at(1, 1)) {
}
}

object datosJugador {
var property imagen = null
}

object points{
var frutasObtenidas = 0
method sumarFrutas(){
Expand Down
12 changes: 8 additions & 4 deletions mainExample.wpgm
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,16 @@ program BadIceCreamGame {
keyboard.r().onPressDo({
const nuevaFruta = interactuador.obtenerPrimerElemento("r"," sobre una fruta para recolectarla")
if(nuevaFruta.esFruta()){
jugador.recolectar(nuevaFruta)
//jugador.recolectar(nuevaFruta)
game.allVisuals().filter({objeto => objeto.image() == datosJugador.imagen()}).head().recolectar(nuevaFruta)
points.sumarFrutas()
}
if(points.frutasObtenidas() == 10 || points.frutasObtenidas() == 20){
spawn.dibujarFrutas()
}
if(points.frutasObtenidas() == 30){
sincronizadorDePantallas.cambiarPantalla("ganador")
const menuGanaste = new MenuGanaste()
menuGanaste.cargar()
}
})
Expand All @@ -42,16 +44,18 @@ program BadIceCreamGame {
// Si tocas shift se gana el juego automaticamente. Asi cuando probamos no tenemos que jugarlo completo. Despues esto se saca.
keyboard.shift().onPressDo({
sincronizadorDePantallas.cambiarPantalla("ganador")
menuGanaste.cargar()})
/*const menuGanaste = new MenuGanaste()
menuGanaste.cargar()})*/
new MenuGanaste().cargar()})

game.onCollideDo(lineaEnemiga.enemigo(), {elemento => if(elemento.jugador()){ elemento.eliminate() sincronizadorDePantallas.cambiarPantalla("perdedor") menuPerdiste.cargar()}})
}

object interactuador{
method obtenerPrimerElemento(key,accion){
const colliders = game.colliders(jugador)
const colliders = game.colliders(game.allVisuals().filter({objeto => objeto.image() == datosJugador.imagen()}).head())
if (colliders.isEmpty())
throw new DomainException(message = "Apreta "+ key + accion, source = jugador)
throw new DomainException(message = "Apreta "+ key + accion, source = game.allVisuals().filter({objeto => objeto.image() == datosJugador.imagen()}).head())
return colliders.head()
}
}
61 changes: 38 additions & 23 deletions menus.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import miscelaneos.*

class Menus{
const add_1
const add_2
//const add_2
const moverA
const cantidadDeIncrementoParaPosiciones
const equisMax
Expand All @@ -25,7 +25,8 @@ class Menus{

method cargar(){
game.addVisual(add_1)
game.addVisual(add_2)
//game.addVisual(add_2)
game.addVisual(moverA)
if(sincronizadorDePantallas.pantallaActual() == tipoDeMenu){
keyboard.w().onPressDo({if(moverA.position().y() < yeMax) moverA.position(game.at(moverA.position().x(), moverA.position().y() + cantidadDeIncrementoParaPosiciones))})
keyboard.a().onPressDo({if(moverA.position().x() > equisMin) moverA.position(game.at(moverA.position().x() - cantidadDeIncrementoParaPosiciones, moverA.position().y()))})
Expand All @@ -36,40 +37,44 @@ 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"){
object 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({
if(sincronizadorDePantallas.pantallaActual() == tipoDeMenu){
sincronizadorDePantallas.cambiarPantalla("niveles")
jugador.valor(marcoDeSeleccion.position().x())
//jugador.valor(marcoDeSeleccion.position().x())
if(marcoDeSeleccion.position().x() == 2){ //elementos del helado
jugador.valor("helado.png")
//jugador.valor("helado.png")
datosJugador.imagen("helado.png")
fondoJuego.valor("f_slime.png")
visual.valor("b_fiesta.png")
spawn.puntos(["bananas.png", "uva.png", "sandia.png"]) //Rompe encapsulamiento?
} else if(marcoDeSeleccion.position().x() == 7){ //elementos del pajarito
jugador.valor("piopio.png")
//jugador.valor("piopio.png")
datosJugador.imagen("piopio.png")
fondoJuego.valor("f_pio.png")
visual.valor("b_pio.png")
spawn.puntos(["archaic coin.png", "circus coin.png", "lunaver coin.png"])
} else { //elementos de Goku
jugador.valor("goku.png")
//jugador.valor("goku.png")
datosJugador.imagen("goku.png")
fondoJuego.valor("f_pasto.png")
visual.valor("b_pasto.png")
spawn.puntos(["semilla.png", "capsula.png", "comida.png"])
}
game.removeVisual(menuPersonajes)
game.removeVisual(marcoDeSeleccion)
const menuNivel = new MenuNivel()
menuNivel.cargar()
}
})
}
}

object menuNivel inherits Menus(add_1 = menuNiveles, add_2 = seleccionNivel, moverA = seleccionNivel, cantidadDeIncrementoParaPosiciones = 2, equisMax = 14, equisMin = 1, yeMax = 11, yeMin = 3, tipoDeMenu = "niveles"){
class MenuNivel inherits Menus(add_1 = menuNiveles,/* add_2 = seleccionNivel,*/ moverA = new SeleccionNivel(), cantidadDeIncrementoParaPosiciones = 2, equisMax = 14, equisMin = 1, yeMax = 11, yeMin = 3, tipoDeMenu = "niveles"){
method bloquear(){ //DIBUJAR MENSAJE DE "NIVEL NO DESBLOQUEADO"
if(bloqueados.any({bloqueado => bloqueado == seleccionNivel.position()})){
if(bloqueados.any({bloqueado => bloqueado == moverA.position()})){
game.addVisual(bloqueado)
} else {
game.removeVisual(bloqueado)
Expand All @@ -89,61 +94,65 @@ object menuNivel inherits Menus(add_1 = menuNiveles, add_2 = seleccionNivel, mov
keyboard.enter().onPressDo({
if(sincronizadorDePantallas.pantallaActual() == tipoDeMenu){
sincronizadorDePantallas.cambiarPantalla("jugar")
if(seleccionNivel.position() == game.at(1,11)){ //Seleccionado nivel 1
if(moverA.position() == game.at(1,11)){ //Seleccionado nivel 1
escenario.generarLista(0)
} else if(seleccionNivel.position() == game.at(3,11)){ //Seleccionado nivel 2
} else if(moverA.position() == game.at(3,11)){ //Seleccionado nivel 2
escenario.generarLista(1)
}
game.removeVisual(menuNiveles)
game.removeVisual(seleccionNivel)
game.removeVisual(moverA)
points.reset()
juego.jugar()
}
})
}
}

object menuGanaste inherits Menus(add_1 = ganaste, add_2 = seleccionGanaste, moverA = seleccionGanaste, cantidadDeIncrementoParaPosiciones = 4, equisMax = 10, equisMin = 6, yeMax = 5, yeMin = 5, tipoDeMenu = "ganador"){
class MenuGanaste inherits Menus(add_1 = ganaste, /*add_2 = seleccionGanaste,*/ moverA = new SeleccionGanaste(), cantidadDeIncrementoParaPosiciones = 4, equisMax = 10, equisMin = 6, yeMax = 5, yeMin = 5, tipoDeMenu = "ganador"){
override method cargar(){
super()
game.removeVisual(jugador)
//game.removeVisual(jugador)
game.allVisuals().filter({objeto => objeto.image() == datosJugador.imagen()}).head().eliminate()
lineaEnemiga.enemigo().limpiarEnemigos()
game.removeVisual(fondoJuego)
game.removeVisual(points)
escenario.limpiarEscenario()
keyboard.enter().onPressDo({
if(sincronizadorDePantallas.pantallaActual() == tipoDeMenu){
game.removeVisual(seleccionGanaste)
game.removeVisual(moverA)
game.removeVisual(ganaste)
if (seleccionGanaste.position() == game.at(6, 5)) {
if (moverA.position() == game.at(6, 5)) {
sincronizadorDePantallas.cambiarPantalla("niveles")
menuNivel.cargar()
//const menuNivel = new MenuNivel()
//menuNivel.cargar()
new MenuNivel().cargar()
}
if (seleccionGanaste.position() == game.at(10, 5)){
if (moverA.position() == game.at(10, 5)){
game.addVisual(finDelJuego)
game.stop()
}
}
})
}
}
object menuPerdiste inherits Menus(add_1 = perdiste, add_2 = seleccionGanaste, moverA = seleccionGanaste, cantidadDeIncrementoParaPosiciones = 4, equisMax = 10, equisMin = 6, yeMax = 7, yeMin = 7, tipoDeMenu = "perdedor"){
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"){
override method cargar(){
super()
game.removeVisual(jugador)
//game.removeVisual(jugador)
game.allVisuals().filter({objeto => objeto.image() == datosJugador.imagen()}).head().eliminate()
lineaEnemiga.enemigo().limpiarEnemigos()
game.removeVisual(fondoJuego)
game.removeVisual(points)
escenario.limpiarEscenario()
keyboard.enter().onPressDo({
if(sincronizadorDePantallas.pantallaActual() == tipoDeMenu){
game.removeVisual(seleccionGanaste)
game.removeVisual(moverA)
game.removeVisual(perdiste)
if (seleccionGanaste.position() == game.at(6, 5)) {
if (moverA.position() == game.at(6, 5)) {
sincronizadorDePantallas.cambiarPantalla("jugar")
juego.jugar()
}
if (seleccionGanaste.position() == game.at(10, 5)){
if (moverA.position() == game.at(10, 5)){
game.addVisual(finDelJuego)
game.stop()
}
Expand All @@ -167,6 +176,8 @@ object juego{
//dibujar escenario
escenario.generarEscenario()
//dibujar jugador
const jugador = new Jugador()
jugador.valor(datosJugador.imagen())
jugador.posicionate()
//game.addVisualCharacter(jugador)
muros.crearBordeInferior()
Expand All @@ -184,4 +195,8 @@ object sincronizadorDePantallas{
pantalla = nuevaPantalla
}
method pantallaActual() = pantalla
}

object laMuerte {
method erradicar() = game.removeVisual(game.getObjectsIn(game.at(1, 1)))
}
6 changes: 3 additions & 3 deletions miscelaneos.wlk
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import jugador.jugador
import jugador.*

object fondo_de_pausa{
var property position = game.origin()
Expand Down Expand Up @@ -30,12 +30,12 @@ object menuNiveles{
method image() = "niveles2.png"
}

object seleccionNivel{
class SeleccionNivel{
var property position = game.at(1, 11)
method image() = "nivel_s.png"
}

object seleccionGanaste{
class SeleccionGanaste{
var property position = game.at(6, 5)
method image() = "nivel_s.png"
}
Expand Down
24 changes: 22 additions & 2 deletions movimiento.wlk
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import muros.*



/*
class FiguraConMovimiento{
var position
method position() = position
Expand All @@ -15,4 +15,24 @@ 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)){
position = game.at(posicion.x(), posicion.y())
}
}
}

class FiguraConMovimiento inherits Movimiento{}

0 comments on commit 552df24

Please sign in to comment.