Skip to content

Commit

Permalink
Agrego mas consumibles, una pelota y sonido ambiente; cambio metodo p…
Browse files Browse the repository at this point in the history
…ara hablar
  • Loading branch information
IsiAliEmir committed Oct 24, 2024
1 parent fd8cac8 commit 590e5ab
Show file tree
Hide file tree
Showing 8 changed files with 82 additions and 32 deletions.
10 changes: 5 additions & 5 deletions ProximosPasos.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
- [ ] Cambiar background por una mejor cancha.
- [ ] Agregar más consumibles (objetos distintos).
- [ ] Agregar la pelota.
- [ ] Modelar interacción con la pelota.
- [ ] Revisar colisión con golondrina provisoria.
- [X] Cambiar background por una mejor cancha.
- [X] Agregar más consumibles (objetos distintos).
- [X] Agregar la pelota.
- [ ] Modelar interacción con la pelota (que la patee en una direccion).
- [ ] Revisar colisión con consumibles (que le suba la energia y que hable, y que el consumible desaparezca (y cómo vuelve a aparecer otro?)).
- [ ] Modelar colisión con jugador rival? (que lo empuje).
- [ ] Agregar sonidos (de fondo, en colisiones, etc.).
- [ ] Modelar mecánica de goles............y de fin de partida.
Expand Down
Binary file added assets/agua.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/bananas.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/food.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/pelota.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/sonidoAmbiente.mp3
Binary file not shown.
83 changes: 61 additions & 22 deletions main.wpgm
Original file line number Diff line number Diff line change
Expand Up @@ -8,29 +8,15 @@ program FulbotGame {
game.width(100)
game.cellSize(10)

//OBJETOS
//SONIDOS

const jugador1 = new Jugador( cansancio = 0, imagen = "brasilero.png")
const jugador2 = new Jugador( cansancio = 0, imagen = "argentino.png")
const gaseosa = new Consumible( energia = 30, imagen = "gaseosa.png")
const sonidoAmbiente = game.sound("sonidoAmbiente.mp3")
sonidoAmbiente.shouldLoop(true)
keyboard.m().onPressDo({sonidoAmbiente.volume(0)})
//keyboard.n().onPressDo({sonidoAmbiente.volume(50)}) //Por alguna razon da EvaluationError...
game.schedule(500, { sonidoAmbiente.play()} )

//VISUALS

game.addVisual(jugador1)
game.addVisual(jugador2)
game.addVisual(gaseosa)

//EVENTOS

game.whenCollideDo(gaseosa, { elemento =>
game.say(elemento,elemento.hablar())
elemento.recuperarEnergia(gaseosa.energia())
}) //AÑADIR UN REMOVE PARA EL VISUAL.

//TENEMOS QUE HACER QUE CUANDO PASE CIERTA CANTIDAD DE TICKS EL ITEM REAPAREZCA, Y QUE CON LA COLISION DESAPAREZCA.
game.onTick(10000, "movimiento", { gaseosa.movete() })
game.onTick(1000, "movimiento", { jugador1.recuperarEnergia(10) })
game.onTick(1000, "movimiento", { jugador2.recuperarEnergia(10) })
// TECLAS DE MOVIMIENTO

keyboard.w().onPressDo({ jugador1.moverteArriba(5) })
keyboard.a().onPressDo({ jugador1.moverteIzquierda(5) })
Expand All @@ -42,5 +28,58 @@ program FulbotGame {
keyboard.down().onPressDo({ jugador2.moverteAbajo(5) })
keyboard.right().onPressDo({ jugador2.moverteDerecha(5) })

//OBJETOS

const jugador1 = new Jugador( cansancio = 0, imagen = "argentino.png", position = new MutablePosition(x=50, y=10))
const jugador2 = new Jugador( cansancio = 0, imagen = "brasilero.png", position = new MutablePosition(x=50, y=90))

const gaseosa1 = new Consumible( energia = 30, imagen = "gaseosa.png")
const gaseosa2 = new Consumible( energia = 30, imagen = "gaseosa.png")
const comida = new Consumible( energia = 60, imagen = "food.png")
const banana1 = new Consumible( energia = 40, imagen = "bananas.png")
const banana2 = new Consumible( energia = 40, imagen = "bananas.png")
const agua1 = new Consumible( energia = 20, imagen = "agua.png")
const agua2 = new Consumible( energia = 20, imagen = "agua.png")

// COLISIONES

//game.whenCollideDo(jugador1, { algo => game.say(jugador1,jugador1.decir("Epa!")) })
//game.whenCollideDo(jugador1, game.say(jugador1,jugador1.decir("Epa!")))

/*game.whenCollideDo(banana, { elemento =>
game.say(elemento,elemento.hablar("Gracias"))
elemento.recuperarEnergia(banana.energia())
}) //AÑADIR UN REMOVE PARA EL VISUAL. */

// EVENTOS PROGRAMADOS

game.schedule(100, {
game.addVisual(jugador1)
game.addVisual(jugador2)
game.addVisual(pelota)
game.addVisual(gaseosa1)
game.addVisual(gaseosa2)
game.addVisual(comida)
game.addVisual(banana1)
game.addVisual(banana2)
game.addVisual(agua1)
game.addVisual(agua2)
game.say(jugador1, jugador1.decir("Muchaaaaachoooooos"))
game.say(jugador2, jugador2.decir("Eu nao falo portugues"))
})

// EVENTOS AUTOMATICOS

//TENEMOS QUE HACER QUE CUANDO PASE CIERTA CANTIDAD DE TICKS EL ITEM REAPAREZCA, Y QUE CON LA COLISION DESAPAREZCA.
game.onTick(1000, "recupera energia", { jugador1.recuperarEnergia(10) })
game.onTick(1000, "recupera energia", { jugador2.recuperarEnergia(10) })
game.onTick(2000, "se mueve", { comida.moverse() })
game.onTick(5000, "se mueve", { banana1.moverse() })
game.onTick(5000, "se mueve", { banana2.moverse() })
game.onTick(8000, "se mueve", { gaseosa1.moverse() })
game.onTick(8000, "se mueve", { gaseosa2.moverse() })
game.onTick(10000, "se mueve", { agua1.moverse() })
game.onTick(10000, "se mueve", { agua2.moverse() })

game.start()
}
}
21 changes: 16 additions & 5 deletions objects.wlk
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
class Jugador {
var cansancio = 0
const imagen
const position = new MutablePosition(x=50, y=50)
const position = game.center()

method cansancio() = cansancio
method image() = imagen
Expand Down Expand Up @@ -47,24 +47,35 @@ class Jugador {
}
}

method hablar() = "Rica gaseosa!"
method decir(texto) = texto
}

class Consumible {
const energia
const imagen
var position = game.center()

method energia() = energia
method image() = imagen

var property position = game.center()
method movete() {
method position() = position

method moverse() {
const x = 0.randomUpTo(game.width()).truncate(0)
const y = 0.randomUpTo(game.height()).truncate(0)
position = game.at(x,y)
}
}

object pelota {
method image() = "pelota.png"
var position = new MutablePosition(x=50, y=50)

method position() = position
method moverse(x, y) {
position = game.at(x, y)
}
}




Expand Down

0 comments on commit 590e5ab

Please sign in to comment.