Skip to content

Commit

Permalink
Co-authored-by: Sebastián Santiago Ayala Osorio <AyalaSebastian@users…
Browse files Browse the repository at this point in the history
….noreply.github.com>

Co-authored-by: WhiskyC <[email protected]>
Co-authored-by: Juan Manuel Rodrigo UTN <[email protected]>
  • Loading branch information
UrielBove committed Nov 12, 2024
1 parent baf782b commit 009a267
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 11 deletions.
Binary file added assets/3corazones.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
54 changes: 43 additions & 11 deletions example.wlk
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import wollok.game.*


object arriba{
method mover(){
militar.position(militar.posicionArriba())
Expand Down Expand Up @@ -63,6 +64,23 @@ object estaArreglando{
}
}

object vidaMilitar{
var property position = game.at(1,0)
var property cantVida = militar.cuantaVida()

method image(){
if (cantVida == 3){
return "3corazones.png"
}
else{return "bob.png"}
}

method chocarConMilitar(){

}

}

object militar {
method image() = estado.image(inmune)
var property position = game.at(0, game.height() / 2) // posicionar al militar en el borde izquierdo, centrado verticalmente
Expand Down Expand Up @@ -107,6 +125,7 @@ object militar {
if(vida < 1){
game.say(self, "¡Fin Del Juego!")
interfaz.detenerJuego()
gameOver.estaActivado(true)
// PONER FIN DEL JUEGO
}
else{
Expand Down Expand Up @@ -198,13 +217,17 @@ class Enemigo {
var property position = game.at(0, 0) // Inicialmente en (0, 0), se ajustará a la hora de aparecer
var nombre
method generarEnemigo() {
const x = game.width() - 1 // Aparecer en el borde derecho
const y = 1.randomUpTo(game.height() - 2).truncate(0) // Posición aleatoria en el eje y
position = game.at(x, y)
if(not(gameOver.estado())){ //gameOver.estado().negate()
const x = game.width() - 1 // Aparecer en el borde derecho
const y = 1.randomUpTo(game.height() - 2).truncate(0) // Posición aleatoria en el eje y
position = game.at(x, y)

game.addVisual(self)
nombre="movimiento"+(1.randomUpTo(10000)).toString()
game.onTick(1000, nombre, { self.moverIzquierda() })
}


game.addVisual(self)
nombre="movimiento"+(1.randomUpTo(10000)).toString()
game.onTick(1000, nombre, { self.moverIzquierda() })
}

/*method movimiento(){
Expand All @@ -215,7 +238,9 @@ class Enemigo {
const nuevaX = position.x() - 1 // Moverse hacia la izquierda
if (nuevaX >= 0) { // Mientras no salga del borde izquierdo
position = game.at(nuevaX, position.y())
} else {
if (gameOver.estado()){self.morir()}
}
else {
self.morir()// Eliminar al enemigo si llega al borde izquierdo
base.restarVida(1)
}
Expand Down Expand Up @@ -371,6 +396,7 @@ class SuperManzana inherits ManzanaDorada {
object base {
var property vida = 2
var property image = "foto vida"

//method image() = "image"
/*var position = game.at(x, y)
const x = game.width() - 1 // Aparecer en el borde derecho
Expand All @@ -381,17 +407,23 @@ object base {
vida -= nuevaVida
game.say(militar, "La base perdió una vida!")}
else{
game.say(militar, "Perdí cayó la base")
interfaz.detenerJuego()
vida=0
gameOver.estaActivado(true)
game.say(militar, "Perdí cayó la base")
// PONER FIN DEL JUEGO
}
}
}
}

////////////////////////////////////////////////////////////
////////////////////// GAME OVER ////////////////////////
////////////////////////////////////////////////////////////
object gameOver{
var estado = false
method estado() = estado
method estaActivado(_estado) { estado = _estado}
//method estado1() = base.vida()==0 or militar.cuantaVida()==0
var property position = game.at(0,0)
method quitar(){
game.removeVisual(self)
Expand All @@ -406,7 +438,7 @@ object interfaz {
method empezarJuego() {

game.addVisual(militar)

game.addVisual(vidaMilitar)
self.desbloquearTeclas()
self.colisiones()

Expand Down Expand Up @@ -453,7 +485,7 @@ object interfaz {

method restart() {
self.empezarJuego()

gameOver.quitar()
}

Expand Down

0 comments on commit 009a267

Please sign in to comment.