Skip to content

Commit

Permalink
Enemigo y pantalla perdiste con Brisa
Browse files Browse the repository at this point in the history
  • Loading branch information
LucianoSantinoValenzuelaMaltas committed Oct 21, 2024
1 parent e37fa5a commit ab60dda
Show file tree
Hide file tree
Showing 9 changed files with 157 additions and 61 deletions.
Binary file added assets/perdiste.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/perdiste2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
38 changes: 38 additions & 0 deletions enemigos.wlk
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
class Enemigo1{
var property position = game.at(4,16)
var lado = 0
method image() = "piopio.png"

method moverseH(limite1, limite2){
game.onTick(500, self, {self.muevete(limite1, limite2)})
}

method muevete(limite1, limite2){
if(self.position().x() == limite2){
lado = 1
}
if(self.position().x() == limite1){
lado = 0
}
if(lado == 0 && self.position().x()<limite2){
position = game.at(self.position().x()+1, 16)
}
if(lado == 1 && self.position().x()>limite1){
position = game.at(self.position().x()-1, 16)
}
}

method limpiarEnemigos(){
game.removeVisual(self)
}

}

object lineaEnemiga{
var property enemigo = new Enemigo1()

method activar(){
game.addVisual(enemigo)
enemigo.moverseH(4,13)
}
}
16 changes: 13 additions & 3 deletions jugador.wlk
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
import muros.*

import menus.menuPerdiste

object jugador {
var position = game.at(1,1)

method jugador() = true

method position() = position

method equisCorrecta(equis) = equis >= 1 && equis <= (game.width()-2)
Expand All @@ -19,14 +23,19 @@ object jugador {
self.position(game.at(1, 1))
game.addVisualCharacter(self)
}

var property valor = "helado.png"

method image() = valor

method recolectar(fruta){
game.removeVisual(fruta)
}

method eliminate(){
game.removeVisual(self)
//menuPerdiste.cargar()
}
}

object points{
Expand All @@ -35,8 +44,9 @@ object points{
frutasObtenidas += 1
}
method frutasObtenidas() = frutasObtenidas
method position() = game.at((game.width()-3),(game.height()-1))
method text() = " Puntos: " + frutasObtenidas
method position() = game.at((game.width()-3),(game.height()-1))
method text() = " Puntos: " + frutasObtenidas
method textColor() = "FF0000FF"
method reset(){
frutasObtenidas = 0
}
Expand Down
62 changes: 35 additions & 27 deletions mainExample.wpgm
Original file line number Diff line number Diff line change
Expand Up @@ -6,38 +6,46 @@ import jugador.*

import puntos.*

import enemigos.*

program BadIceCreamGame {
game.cellSize(40)
game.title("Bad Ice Cream")
game.height(18)
game.width(18)
//Inicio menu
menuPersonaje.cargar()
//inicio
game.start()

//Juego puntos
keyboard.r().onPressDo({
const nuevaFruta = interactuador.obtenerPrimerElemento("r"," sobre una fruta para recolectarla")
if(nuevaFruta.esFruta()){
jugador.recolectar(nuevaFruta)
points.sumarFrutas()
}
if(points.frutasObtenidas() == 10 || points.frutasObtenidas() == 20){
spawn.dibujarFrutas()
}
if(points.frutasObtenidas() == 30){
sincronizadorDePantallas.cambiarPantalla("ganador")
menuGanaste.cargar()
}
})
game.cellSize(40)
game.title("Bad Ice Cream")
game.height(18)
game.width(18)
//Inicio menu
menuPersonaje.cargar()
//inicio
game.start()


//const position = new MutablePosition


//Juego puntos
keyboard.r().onPressDo({
const nuevaFruta = interactuador.obtenerPrimerElemento("r"," sobre una fruta para recolectarla")
if(nuevaFruta.esFruta()){
jugador.recolectar(nuevaFruta)
points.sumarFrutas()
}
if(points.frutasObtenidas() == 10 || points.frutasObtenidas() == 20){
spawn.dibujarFrutas()
}
if(points.frutasObtenidas() == 30){
sincronizadorDePantallas.cambiarPantalla("ganador")
menuGanaste.cargar()
}
})

game.onCollideDo(lineaEnemiga.enemigo(), {elemento => if(elemento.jugador()){ elemento.eliminate() sincronizadorDePantallas.cambiarPantalla("perdedor") menuPerdiste.cargar()}})
}

object interactuador{
method obtenerPrimerElemento(key,accion){
const colliders = game.colliders(jugador)
if (colliders.isEmpty())
throw new DomainException(message = "Apreta "+ key + accion, source = jugador)
const colliders = game.colliders(jugador)
if (colliders.isEmpty())
throw new DomainException(message = "Apreta "+ key + accion, source = jugador)
return colliders.head()
}
}
42 changes: 35 additions & 7 deletions menus.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ import jugador.*

import muros.*

import enemigos.*

import puntos.*

import miscelaneos.*
Expand Down Expand Up @@ -41,17 +43,17 @@ object menuPersonaje inherits Menus(add_1 = menuPersonajes, add_2 = marcoDeSelec
if(sincronizadorDePantallas.pantallaActual() == tipoDeMenu){
sincronizadorDePantallas.cambiarPantalla("niveles")
jugador.valor(marcoDeSeleccion.position().x())
if(marcoDeSeleccion.position().x() == 2){
if(marcoDeSeleccion.position().x() == 2){ //elementos del helado
jugador.valor("helado.png")
fondoJuego.valor("f_slime.png")
visual.valor("b_fiesta.png")
spawn.puntos(["bananas.png", "uva.png", "sandia.png"])
} else if(marcoDeSeleccion.position().x() == 7){
spawn.puntos(["bananas.png", "uva.png", "sandia.png"]) //Rompe encapsulamiento?
} else if(marcoDeSeleccion.position().x() == 7){ //elementos del pajarito
jugador.valor("piopio.png")
fondoJuego.valor("f_pio.png")
visual.valor("b_pio.png")
spawn.puntos(["archaic coin.png", "circus coin.png", "lunaver coin.png"])
} else {
} else { //elementos de Goku
jugador.valor("goku.png")
fondoJuego.valor("f_pasto.png")
visual.valor("b_pasto.png")
Expand Down Expand Up @@ -105,10 +107,9 @@ object menuGanaste inherits Menus(add_1 = ganaste, add_2 = seleccionGanaste, mov
override method cargar(){
super()
game.removeVisual(jugador)
lineaEnemiga.enemigo().limpiarEnemigos()
game.removeVisual(fondoJuego)
//game.removeVisual(marcadorLeft)
game.removeVisual(points)
//game.removeVisual(marcadorRight)
escenario.limpiarEscenario()
keyboard.enter().onPressDo({
if(sincronizadorDePantallas.pantallaActual() == tipoDeMenu){
Expand All @@ -126,6 +127,30 @@ object menuGanaste inherits Menus(add_1 = ganaste, add_2 = seleccionGanaste, mov
})
}
}
object menuPerdiste inherits Menus(add_1 = perdiste, add_2 = seleccionGanaste, moverA = seleccionGanaste, cantidadDeIncrementoParaPosiciones = 4, equisMax = 10, equisMin = 6, yeMax = 7, yeMin = 7, tipoDeMenu = "perdedor"){
override method cargar(){
super()
game.removeVisual(jugador)
lineaEnemiga.enemigo().limpiarEnemigos()
game.removeVisual(fondoJuego)
game.removeVisual(points)
escenario.limpiarEscenario()
keyboard.enter().onPressDo({
if(sincronizadorDePantallas.pantallaActual() == tipoDeMenu){
game.removeVisual(seleccionGanaste)
game.removeVisual(perdiste)
if (seleccionGanaste.position() == game.at(6, 5)) {
sincronizadorDePantallas.cambiarPantalla("jugar")
juego.jugar()
}
if (seleccionGanaste.position() == game.at(10, 5)){
game.addVisual(finDelJuego)
game.stop()
}
}
})
}
}

object juego{

Expand All @@ -136,6 +161,8 @@ object juego{
spawn.dibujarFrutas()
//dibujar muros
muros.crearLaterales()
//?
lineaEnemiga.activar()
//dibujar escenario
escenario.generarEscenario()
//dibujar puntos
Expand All @@ -145,6 +172,7 @@ object juego{
//dibujar jugador
jugador.posicionate()
//game.addVisualCharacter(jugador)
muros.crearBordeInferior()
game.showAttributes(jugador)
}
}
Expand All @@ -155,4 +183,4 @@ object sincronizadorDePantallas{
pantalla = nuevaPantalla
}
method pantallaActual() = pantalla
}
}
49 changes: 27 additions & 22 deletions miscelaneos.wlk
Original file line number Diff line number Diff line change
@@ -1,55 +1,60 @@
import jugador.jugador

object fondo_de_pausa{
var property position = game.origin()
method image() = "pausa.png"
var property position = game.origin()
method image() = "pausa.png"
}

object ganaste{
var property position = game.origin()
method image() = "ganaste2.png"
var property position = game.origin()
method image() = "ganaste2.png"
}

object perdiste{
var property position = game.origin()
method image() = "perdiste2.png"
}

object menuPersonajes{
var property position = game.origin()
method image() = "FondoSeleccion1.png"
var property position = game.origin()
method image() = "FondoSeleccion1.png"
}

object marcoDeSeleccion{
var property position = game.at(2,5)
method image() = "si.png"
var property position = game.at(2,5)
method image() = "si.png"
}

object menuNiveles{
var property position = game.origin()
method image() = "niveles2.png"
var property position = game.origin()
method image() = "niveles2.png"
}

object seleccionNivel{
var property position = game.at(1, 11)
method image() = "nivel_s.png"
var property position = game.at(1, 11)
method image() = "nivel_s.png"
}

object seleccionGanaste{
var property position = game.at(6, 5)
method image() = "nivel_s.png"
var property position = game.at(6, 5)
method image() = "nivel_s.png"
}

object bloqueado{
var property position = game.at(1, 1)
method image() = "bloqueado.png"
var property position = game.at(1, 1)
method image() = "bloqueado.png"
}

object finDelJuego{
var property position = game.origin()
method image() = "PantallaFinal.png"
var property position = game.origin()
method image() = "PantallaFinal.png"
}

object fondoJuego{
var property position = game.origin()
var property valor = "f_slime.png"
method image() = valor
/*method image(){
var property position = game.origin()
var property valor = "f_slime.png"
method image() = valor
/*method image(){
if(jugador.image() == "helado.png"){
return "f_slime.png"
} else if(jugador.image() == "piopio.png"){
Expand Down
9 changes: 7 additions & 2 deletions muros.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,17 @@ object muros{
method crearLaterales(){
const ancho = game.width() - 1
const alto = game.height() - 1
(0 .. ancho).forEach({x => new Bloque().ubicarYDibujar(game.at(x, 0))}) // Borde inferior
//(0 .. ancho).forEach({x => new Bloque().ubicarYDibujar(game.at(x, 0))}) // Borde inferior
(0 .. ancho).forEach({x => new Bloque().ubicarYDibujar(game.at(x, alto))}) // Borde superior
(alto .. 0).forEach({y => new Bloque().ubicarYDibujar(game.at(0, y))}) // Borde izquierdo
(alto .. 0).forEach({y => new Bloque().ubicarYDibujar(game.at(ancho, y))}) // Borde derecho
}
}
method crearBordeInferior(){
const ancho = game.width() - 1
const alto = game.height() - 1
(0 .. ancho).forEach({x => new Bloque().ubicarYDibujar(game.at(x, 0))}) // Borde inferior
}
}//4.times({unValor => 5.times(action)})

object escenario{
const niveles = [
Expand Down
2 changes: 2 additions & 0 deletions puntos.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ import muros.*
class Fruta{
var property position = posicionAleatoria.generarPosicionAleatoria()

method jugador() = false

method image(){
if(points.frutasObtenidas() < 10){
return spawn.puntos().get(0)
Expand Down

0 comments on commit ab60dda

Please sign in to comment.