Skip to content

Commit

Permalink
cambio el modo en que se crean los obstaculos
Browse files Browse the repository at this point in the history
  • Loading branch information
joaquin-burgio authored Nov 5, 2024
1 parent 1a1fad7 commit 5c878a2
Showing 1 changed file with 74 additions and 49 deletions.
123 changes: 74 additions & 49 deletions example.wlk
Original file line number Diff line number Diff line change
@@ -1,42 +1,21 @@
const objetosRasos = ["banana.png"]
const objetosConAltura = ["pera.png","moneda.png"]
const generadores = [
generadorDeMonedas,
generadorDePeras,
generadorDeBananas,
generadorDeNada
]

object juegoDeDinosaurio {

method iniciar() {
const objetos = objetosRasos + objetosConAltura + [null]
// puede aparecer un objeto que vaya por el suelo (objetosRasos),
// uno que vaya por el aire (objetosConAltura) o ninguno (null)
game.width(45)
game.height(20)
game.addVisual(dinosaurio)
game.onTick(
1000,
"aparecerObjeto",
{ self.aparecer(objetos.anyOne()) }
)

keyboard.space().onPressDo({ dinosaurio.salta() })
game.onTick(1000, "aparecerObjeto", { generadores.anyOne().generar() })

game.whenCollideDo(dinosaurio, { elemento => elemento.teChocoElDino(elemento.image()) })
}

method aparecer(objeto) {
if( objeto != null ) {
const objetoCreado = if (objetosRasos.contains(objeto)) self.crearObjetoRaso(objeto)
else self.crearObjetoConAltura(objeto)

self.apareceYMovete(objetoCreado)
}
}

method crearObjetoRaso(objeto) = new ObjetoRaso(image = objeto)

method crearObjetoConAltura(objeto) = new ObjetoConAltura(image = objeto)

method apareceYMovete(objeto) {
game.addVisual(objeto)
game.onTick(120, "desplazamiento", { objeto.desplazate(2) })
keyboard.up().onPressDo({ dinosaurio.salta() })

game.whenCollideDo(dinosaurio, { elemento => elemento.teChocoElDino() })
}
}

Expand All @@ -58,34 +37,80 @@ object dinosaurio {
method subir() {
position = position.up(4)
}

method sumarPtos() {

}

method otraCosa() {
image = "moneda.png"
}

method terminarJuego() {
game.stop()
}
}

method sumarPtos(){}
method otraCosa(){image = "moneda.png"}
class Generador {
method generar()

method apareceYMovete(nuevoObstaculo) {
game.addVisual(nuevoObstaculo)
game.onTick(120, "desplazamiento", { nuevoObstaculo.desplazate() })
}
}

class ObjetoRaso {
var property position = game.at(game.width() - 1, self.posY())
object generadorDeMonedas inherits Generador {
override method generar() {
self.apareceYMovete(new Moneda(image = "moneda.png"))
}
}

object generadorDePeras inherits Generador {
override method generar() {
self.apareceYMovete(new Pera(image = "pera.png"))
}
}

object generadorDeBananas inherits Generador {
override method generar() {
self.apareceYMovete(new Banana(image = "banana.png"))
}
}

object generadorDeNada {
method generar() {

}
}

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

method posY() = 0
method posY() = 0.randomUpTo(game.height() - 3).truncate(0)

method teChocoElDino(_) {
game.stop()
}
// si el dino choca con un objeto que va x el suelo el juego termina
method teChocoElDino()

method desplazate(n) {
position = position.left(n)
method desplazate() {
position = position.left(2)
}
}

class ObjetoConAltura inherits ObjetoRaso {
override method posY() = 4
// cambiar 4 por valor al azar
class Moneda inherits Obstaculo {
override method teChocoElDino() {
dinosaurio.sumarPtos()
}
}

class Pera inherits Obstaculo {
override method teChocoElDino() {
dinosaurio.otraCosa()
}
}

override method teChocoElDino(objetoChocado) {
if(objetoChocado=="moneda.png") dinosaurio.sumarPtos()
if(objetoChocado=="pera.png") dinosaurio.otraCosa()
class Banana inherits Obstaculo {
override method teChocoElDino() {
dinosaurio.terminarJuego()
}
// si el dino choca con un objeto que va x el aire pueden pasar varias cosas
}

0 comments on commit 5c878a2

Please sign in to comment.