Skip to content

Commit

Permalink
implemento los estados del dino: normal, dobleSalto e inmune
Browse files Browse the repository at this point in the history
  • Loading branch information
joaquin-burgio authored Nov 9, 2024
1 parent 3c84097 commit cf6acd2
Showing 1 changed file with 93 additions and 75 deletions.
168 changes: 93 additions & 75 deletions example.wlk
Original file line number Diff line number Diff line change
@@ -1,56 +1,84 @@
const generadores = [
generadorDeMonedas,
generadorDePeras,
generadorDeBananas,
generadorDeNada,
generadorDeFrutillas
generadorDeMonedas, // suman puntos
generadorDePeras, // restan puntos
generadorDeBananas, // termina el juego
generadorDeFrutillas, // inmunidad
generadorDeUvas, // doble salto
generadorDeNada
]

object juegoDeDinosaurio {
method iniciar() {
game.width(45)
game.height(20)
game.addVisual(dinosaurio)

game.boardGround("fondoBosque.jpg")

game.boardGround("bosque.png")
game.onTick(1000, "aparecerObjeto", { generadores.anyOne().generar() })

keyboard.up().onPressDo({ dinosaurio.salta() })

keyboard.down().onPressDo({ dinosaurio.powerUP() })

keyboard.up().onPressDo({ dinosaurio.saltar() })
game.whenCollideDo(dinosaurio, { elemento => elemento.teChocoElDino() })
}
}

// VER ESTO o HACER ESTO
object normal{
method salta() {
if (dinosaurio.puedeSaltar()) {
dinosaurio.subir()
game.schedule(450, { dinosaurio.bajar() })
}
object normal {
method puntosRestados(n) = n

method puntosSumados(n) = n

method terminarJuego() {
game.stop()
}

method salto() {
if (dinosaurio.position() == game.origin()) dinosaurio.hacerSalto()
}
}
//IDEM

object dobleSalto {
method puntosRestados(n) = n

method puntosSumados(n) = n

method terminarJuego() {
game.stop()
}

method salto() {
if ((dinosaurio.position() == game.origin()) || (dinosaurio.position() == game.at(0,4)))
dinosaurio.hacerSalto()
}
}

object inmune {
method inmune(){
dinosaurio.perderInmunidad()
method puntosRestados(_) = 0

method puntosSumados(n) = n

method terminarJuego() {

}

method salto() {
if (dinosaurio.position() == game.origin()) {
dinosaurio.hacerSalto()
// Si el dino salta mientras que está inmune, pierde la inmunidad.
dinosaurio.estado(normal)
}
}
}

object dinosaurio {
var property position = game.origin()
var property image = "Carpincho.png"
var estado = normal // ver esto

method salta() {
estado.salta()
var property image = "manzana.png"
var property puntos = 0
var property estado = normal

method saltar() {
estado.salto()
}

method recibirDanio(){
estado.recibirDanio()

method hacerSalto() {
dinosaurio.subir()
game.schedule(600, { dinosaurio.bajar() })
}

method bajar() {
Expand All @@ -60,36 +88,23 @@ object dinosaurio {
method subir() {
position = position.up(4)
}

method powerUP()
{
if (position == game.origin())
{
self.saltoDoble()
game.schedule(225,{self.bajar()})
}
}

method saltoDoble()
{
position = position.up(8)
}

method sumarPtos() {

method sumarPtos(n) {
puntos -= estado.puntosSumados(n)
}

method restarPtos() {

method restarPtos(n) {
puntos -= estado.puntosRestados(n)
}

method powerupInmunidad() {
inmunidad = 1
game.schedule(500, {inmunidad = 0})

method perder() {
estado.terminarJuego()
}

method terminarJuego() {
game.stop()
method cambiarEstadoPorUnosSeg(n, nuevoEstado) {
estado = nuevoEstado
// luego de n milisegundos el estado vuelve a ser normal
game.schedule(n, { estado = normal })
}
}

Expand Down Expand Up @@ -120,24 +135,28 @@ object generadorDeBananas inherits Generador {
}
}

object generadorDeNada {
method generar() {

object generadorDeFrutillas inherits Generador {
override method generar() {
self.apareceYMovete(new Frutilla(image = "frutilla.png"))
}
}

// Powerup de Inmunidad
object generadorDeFrutillas inherits Generador {
object generadorDeUvas inherits Generador {
override method generar() {
self.apareceYMovete(new Frutilla(image = "frutilla.png"))
self.apareceYMovete(new Uvas(image = "uvas.png"))
}
}

object generadorDeNada {
method generar() {

}
}

class Obstaculo {
var property position = game.at(game.width(), self.posY())
var property image

const valores = [3,7]
const valores = [0, 4, 8]

method posY() = valores.anyOne()

Expand All @@ -150,31 +169,30 @@ class Obstaculo {

class Moneda inherits Obstaculo {
override method teChocoElDino() {
dinosaurio.sumarPtos()
dinosaurio.sumarPtos(8)
}
}

class Pera inherits Obstaculo {
override method teChocoElDino() {
if(dinosaurio.inmunidad != 1)
{
dinosaurio.restarPtos()
}
dinosaurio.restarPtos(4)
}
}

class Banana inherits Obstaculo {
override method teChocoElDino() {
if(dinosaurio.inmunidad != 1)
{
dinosaurio.terminarJuego()
}
dinosaurio.perder()
}
}

class Frutilla inherits Obstaculo {
override method teChocoElDino() {
dinosaurio.cambiarEstadoPorUnosSeg(8000, inmune)
}
}

// Powerup de Inmunidad
class Frutilla inherits Obstaculo{
class Uvas inherits Obstaculo {
override method teChocoElDino() {
dinosaurio.powerupInmunidad()
dinosaurio.cambiarEstadoPorUnosSeg(5000, dobleSalto)
}
}

0 comments on commit cf6acd2

Please sign in to comment.