Skip to content

Commit

Permalink
cambio de direccion cuando homero toma una cerveza, modificamos la ve…
Browse files Browse the repository at this point in the history
…locidad, ahora la misma hace que los objetos caigan mas rápido y repetimos menos lógica en el tema de los niveles
  • Loading branch information
acorromolas11 committed Nov 6, 2024
1 parent 920a97f commit 73d492c
Show file tree
Hide file tree
Showing 3 changed files with 57 additions and 64 deletions.
26 changes: 24 additions & 2 deletions comida.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,10 @@ class Comida{
tipoAvance.moverseAdelante(posicion)
}

method moverseAtras(posicion){
tipoAvance.moverseAtras(posicion)
}

}


Expand All @@ -47,13 +51,31 @@ object aLaDerecha{
if(posicion.x() <= game.width() - 2 && posicion.x() + 1 <= game.width())
posicion.goRight(1)
}

method moverseAtras(posicion){
if(posicion.x() >= 2 && posicion.x() - 1 >= 0)
posicion.goLeft(1)
}

}

object aLaIzquierda{
method moverseAtras(posicion){
if(posicion.x() <= game.width() - 2 && posicion.x() + 1 <= game.width())
posicion.goRight(1)
}

method moverseAdelante(posicion){
if(posicion.x() >= 2 && posicion.x() - 1 >= 0)
posicion.goLeft(1)
}
}

const rosquilla = new Comida(nombre="rosquilla", puntos=5, velocidad=1)
//Rosquilla puntos = 5
const rosquilla = new Comida(nombre="rosquilla", puntos=100, velocidad=1)
const banana = new Comida(nombre="banana", puntos=-3, velocidad=-1)
const plutonio = new Comida(nombre="plutonio", puntos=15, velocidad=1)
const cerveza = new Comida(nombre="cerveza", puntos=15, velocidad=-2)
const cerveza = new Comida(nombre="cerveza", puntos=15, velocidad=-2,tipoAvance=aLaIzquierda)
const choripan = new Comida(nombre="choripan", puntos=7, velocidad=-1)
const mate = new Comida(nombre="mate", puntos=20, velocidad=2)
const te = new Comida(nombre="te", puntos=-50, velocidad=-1)
Expand Down
11 changes: 4 additions & 7 deletions homero.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,12 @@ import niveles.*

object homero{
var puntos = 0
var velocidad = 2
var velocidad = 1
const position = new MutablePosition(x=8, y=0)
var ultimaComida = rosquilla

method velocidad() = velocidad

method ultimaComida(comida){
ultimaComida = comida
}
Expand All @@ -30,9 +32,7 @@ object homero{
}

method moverseIzquierda(){

if(position.x() >= 0 && position.x() - velocidad >= 0)
position.goLeft(velocidad)
ultimaComida.moverseAtras(position)
}

method moverseDerecha(){
Expand All @@ -47,12 +47,9 @@ object homero{

method alterarVelocidad(nuevaVelocidad){
velocidad += nuevaVelocidad
velocidad = velocidad.max(2)
}

method puntos() = puntos

method velocidad() = velocidad

method image() = "homero-"+ ultimaComida.image()
}
Expand Down
84 changes: 29 additions & 55 deletions niveles.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,16 @@ import fondos.*
// No repetir nada de lógica.

object juego {
var nivelActual = nivel1
const nivelActual = nivel1

method verificarFinDeNivel(){
nivelActual.verificarFinDeNivel()
}
}

object nivel1 {
const nivel1 = new Nivel()

class Nivel{
var estado = "inicio"

method estado() = estado
Expand All @@ -29,7 +31,7 @@ object nivel1 {

method inicializarValores(){
homero.setPuntos(0)
homero.setVelocidad(2)
homero.setVelocidad(1)
homero.ultimaComida(rosquilla)
tiempo.setTimer(5*60)
if(homero.position().x()>8){
Expand All @@ -54,19 +56,19 @@ object nivel1 {
self.inicializarValores()

game.start()
}

}


method iniciarNivel(){
self.setEstado("jugando")
game.removeVisual(mensajes)
comidasNivel1.forEach({comida => game.addVisual(comida)})

game.onTick(1700, "baja", {rosquilla.bajar()})
game.onTick(1200, "baja", {banana.bajar()})
game.onTick(700, "baja", {choripan.bajar()})
game.onTick(1450, "baja", {cerveza.bajar()})
game.onTick(950, "baja", {plutonio.bajar()})
game.onTick(1700 + homero.velocidad(), "baja", {rosquilla.bajar()})
game.onTick(1200 + homero.velocidad() , "baja", {banana.bajar()})
game.onTick(700 + homero.velocidad() , "baja", {choripan.bajar()})
game.onTick(1450 + homero.velocidad() , "baja", {cerveza.bajar()})
game.onTick(950 + homero.velocidad() , "baja", {plutonio.bajar()})

keyboard.a().onPressDo({homero.moverseIzquierda()})
keyboard.d().onPressDo({homero.moverseDerecha()})
Expand Down Expand Up @@ -107,20 +109,11 @@ object nivel1 {

}

//Estados nivel2 : espera,inicio, jugando, finalizado

object nivel2{
var estado = "espera"

method setEstado(x){
estado = x
}

method estado() = estado
object nivel2 inherits Nivel(estado = "espera"){

method inicializarValores(){
override method inicializarValores(){
homero.setPuntos(0)
homero.setVelocidad(2)
homero.setVelocidad(1)
tiempo.setTimer(5*60)
if(homero.position().x()>8){
homero.position().goLeft(homero.position().x()-8)
Expand All @@ -130,7 +123,7 @@ object nivel2{
comidasNivel1.forEach({comida => comida.position().goUp(18)})
}

method iniciarFondo(){
override method iniciarFondo(){
game.title("Homero en El Obelisco")

game.removeVisual(mensajeParaNivel2)
Expand All @@ -144,25 +137,24 @@ object nivel2{
game.addVisual(tiempo)
}

method iniciarNivel(){
override method iniciarNivel(){
self.setEstado("jugando")
game.onTick(1000, "restarSegundo", {tiempo.restarSegundo()})
game.onTick(1000, "finalizarNivel", {if((tiempo.timer() <= 0 || homero.puntos() >= 100) && self.estado()!="finalizado") self.finalizarNivel()})
game.removeVisual(mensajeParaNivel2)
comidasNivel2.forEach({comida => game.addVisual(comida)})

game.onTick(450, "baja", {mate.bajar()})
game.onTick(700, "baja", {choripan.bajar()})
game.onTick(1200, "baja", {banana.bajar()})
game.onTick(950, "baja", {plutonio.bajar()})
game.onTick(1450, "baja", {cerveza.bajar()})
game.onTick(1700, "baja", {rosquilla.bajar()})
game.onTick(1950, "baja", {te.bajar()})
game.onTick(2200, "baja", {ensalada.bajar()})
game.onTick(2450, "baja", {guiso.bajar()})
game.onTick(450 + homero.velocidad(), "baja", {mate.bajar()})
game.onTick(700 + homero.velocidad(), "baja", {choripan.bajar()})
game.onTick(1200 + homero.velocidad(), "baja", {banana.bajar()})
game.onTick(950 + homero.velocidad(), "baja", {plutonio.bajar()})
game.onTick(1450 + homero.velocidad(), "baja", {cerveza.bajar()})
game.onTick(1700 + homero.velocidad(), "baja", {rosquilla.bajar()})
game.onTick(1950 + homero.velocidad() , "baja", {te.bajar()})
game.onTick(2200 + homero.velocidad(), "baja", {ensalada.bajar()})
game.onTick(2450 + homero.velocidad() , "baja", {guiso.bajar()})


keyboard.a().onPressDo({homero.moverseIzquierda()})
keyboard.d().onPressDo({homero.moverseDerecha()})

keyboard.space().onPressDo{
const colliders = game.colliders(homero)
Expand All @@ -175,26 +167,8 @@ object nivel2{
}

}

method finalizarNivel(){
self.limpiarJuego()
game.removeTickEvent("baja")
game.removeTickEvent("restarSegundo")
game.removeTickEvent("finalizarNivel")
if(homero.puntos() < 100){
game.addVisual(mensajeDerrota)
self.setEstado("finalizado")
}else{
game.addVisual(mensajeVictoria)
self.setEstado("finalizado")
}
}

method limpiarJuego(){
game.allVisuals().forEach({visual=>game.removeVisual(visual)})
}


}

//Estados nivel2 : espera,inicio, jugando, finalizado


0 comments on commit 73d492c

Please sign in to comment.