Skip to content

Commit

Permalink
Sincronización aceptable
Browse files Browse the repository at this point in the history
  • Loading branch information
LucianoSantinoValenzuelaMaltas committed Nov 7, 2024
1 parent 31aae21 commit 17c841d
Show file tree
Hide file tree
Showing 9 changed files with 98 additions and 33 deletions.
Binary file added assets/Flow Hero.mp3
Binary file not shown.
Binary file added assets/Kamehameha.mp3
Binary file not shown.
Binary file added assets/Super Survivor.mp3
Binary file not shown.
7 changes: 4 additions & 3 deletions enemigos.wlk
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import jugador.*
import menus.*


Expand Down Expand Up @@ -33,9 +34,9 @@ class Enemigo1{
}
}

method morir() {
sincronizadorDePantallas.cambiarPantalla("ganador")
new MenuGanaste().cargar()
method morir(){
sincronizadorDePantallas.cambiarPantalla("ganador")
//new MenuGanaste().cargar()
}

method limpiarEnemigos(){
Expand Down
55 changes: 41 additions & 14 deletions jugador.wlk
Original file line number Diff line number Diff line change
@@ -1,22 +1,23 @@
import enemigos.*
import muros.*
import musica.*

import menus.*

import movimiento.*

class Jugador inherits FiguraConMovimiento(position = game.at(1, 1)) {

method jugador() = true

method posicionate(){
//self.position().clear()
self.position(game.at(1, 1))
game.addVisualCharacter(self)
}

method volver(){
if(sincronizadorDePantallas.pantallaActual() == "jugar"){
musica.sonido_continue()
game.addVisualCharacter(self)
}
}
Expand All @@ -30,11 +31,12 @@ class Jugador inherits FiguraConMovimiento(position = game.at(1, 1)) {
}

method eliminate(){
musica.sonido_pause()
game.removeVisual(self)
}

method impactado() {
self.eliminate()
self.eliminate() //no debería ir acá, pero es donde mejor anda
sincronizadorDePantallas.cambiarPantalla("perdedor")
new MenuPerdiste().cargar()
}
Expand All @@ -43,6 +45,10 @@ class Jugador inherits FiguraConMovimiento(position = game.at(1, 1)) {
method atacarIzquierda() = new KamehamehaIzquierda().energia(self.position(), "goku_Kamehameha_Izquierda.png", -1)
}

object atajos{
method jugador() = game.allVisuals().filter({objeto => objeto.image() == datosJugador.imagen()}).head()
}

object datosJugador {
var property imagen = null
}
Expand All @@ -53,9 +59,7 @@ object gokuAtacando {
method image() = lado

method impactado(){
//game.allVisuals().filter({objeto => objeto.image() == KamehamehaDerecha.image() || objeto.image() == KamehamehaIzquierda.image()}).head()
sincronizadorDePantallas.cambiarPantalla("perdedor")
//new MenuPerdiste().cargar()
}

method eliminate(){
Expand All @@ -67,13 +71,17 @@ object gokuAtacando {
class KamehamehaDerecha{
var personaje = null
var property impacto = 0

var property position = null
const property sonido = game.sound("Kamehameha.mp3")

method efectoSonoro() {
self.sonido().volume(0.2)
self.sonido().play()
}

method image() = "kamehameha_Derecha.png"

method impactado() {
//game.allVisuals().filter({objeto => objeto.image() == Enemigo1.image()}).head().herido()
lineaEnemiga.enemigo().herido()
self.impacto(1)
}
Expand All @@ -83,9 +91,10 @@ class KamehamehaDerecha{
gokuAtacando.position(posicion)
self.position(game.at(posicion.x() + valor, posicion.y()))
if(!escenario.mismaPosicion(self.position())){
self.efectoSonoro()
game.addVisual(gokuAtacando)
personaje = game.allVisuals().filter({objeto => objeto.image() == datosJugador.imagen()}).head()
game.removeVisual(game.allVisuals().filter({objeto => objeto.image() == datosJugador.imagen()}).head())
personaje = atajos.jugador()
atajos.jugador().eliminate()
game.addVisual(self)
game.schedule(500, {self.avanzar()})
}
Expand All @@ -99,18 +108,27 @@ class KamehamehaDerecha{
game.schedule(500, {self.avanzar()})
}
else{
personaje.position(gokuAtacando.position())
personaje.volver()
const jugador = new Jugador()
jugador.valor(datosJugador.imagen())
jugador.position(gokuAtacando.position())
if(sincronizadorDePantallas.pantallaActual() == "jugar"){
jugador.volver()
}
self.eliminate()
gokuAtacando.eliminate()
if(sincronizadorDePantallas.pantallaActual() == "perdedor"){
//jugador.eliminate()
new MenuPerdiste().cargar()
}
if(sincronizadorDePantallas.pantallaActual() == "ganador"){
//jugador.eliminate()
new MenuGanaste().cargar()
}
}
}

method eliminate(){
//game.removeVisual(gokuAtacando)
self.sonido().stop()
game.removeVisual(self)
}
}
Expand All @@ -124,13 +142,22 @@ class KamehamehaIzquierda inherits KamehamehaDerecha{
game.schedule(500, {self.avanzar()})
}
else{
personaje.position(gokuAtacando.position())
personaje.volver()
const jugador = new Jugador()
jugador.valor(datosJugador.imagen())
jugador.position(gokuAtacando.position())
if(sincronizadorDePantallas.pantallaActual() == "jugar"){
jugador.volver()
}
self.eliminate()
gokuAtacando.eliminate()
if(sincronizadorDePantallas.pantallaActual() == "perdedor"){
//jugador.eliminate()
new MenuPerdiste().cargar()
}
if(sincronizadorDePantallas.pantallaActual() == "ganador"){
//jugador.eliminate()
new MenuGanaste().cargar()
}
}
}
}
Expand Down
16 changes: 8 additions & 8 deletions mainExample.wpgm
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ program BadIceCreamGame {
game.height(18)
game.width(18)
//Inicio menu
//menuPersonaje.cargar()
new MenuPersonaje().cargar()
//inicio
game.start()
Expand All @@ -28,15 +27,15 @@ program BadIceCreamGame {
if(sincronizadorDePantallas.habilitar()){
const nuevaFruta = interactuador.obtenerPrimerElemento("r"," sobre una fruta para recolectarla")
if(nuevaFruta.esFruta()){
//jugador.recolectar(nuevaFruta)
game.allVisuals().filter({objeto => objeto.image() == datosJugador.imagen()}).head().recolectar(nuevaFruta)
atajos.jugador().recolectar(nuevaFruta)
points.sumarFrutas()
}
if(points.frutasObtenidas() == 10 || points.frutasObtenidas() == 20){
spawn.dibujarFrutas()
}
if(points.frutasObtenidas() == 30){
sincronizadorDePantallas.cambiarPantalla("ganador")
atajos.jugador().sonido_off()
//const menuGanaste = new MenuGanaste()
//menuGanaste.cargar()
new MenuGanaste().cargar()
Expand All @@ -45,14 +44,15 @@ program BadIceCreamGame {

})

keyboard.e().onPressDo({if(sincronizadorDePantallas.habilitar()) {game.allVisuals().filter({objeto => objeto.image() == datosJugador.imagen()}).head().atacarDerecha()}})
keyboard.q().onPressDo({if(sincronizadorDePantallas.habilitar()) {game.allVisuals().filter({objeto => objeto.image() == datosJugador.imagen()}).head().atacarIzquierda()}})
keyboard.e().onPressDo({if(sincronizadorDePantallas.habilitar()) {atajos.jugador().atacarDerecha()}})
keyboard.q().onPressDo({if(sincronizadorDePantallas.habilitar()) {atajos.jugador().atacarIzquierda()}})


// Si tocas shift se gana el juego automaticamente. Asi cuando probamos no tenemos que jugarlo completo. Despues esto se saca.
keyboard.shift().onPressDo({
if(sincronizadorDePantallas.habilitar()){
if(sincronizadorDePantallas.habilitar()){
sincronizadorDePantallas.cambiarPantalla("ganador")
atajos.jugador().sonido_off()
/*const menuGanaste = new MenuGanaste()
menuGanaste.cargar()})*/
new MenuGanaste().cargar()
Expand All @@ -64,9 +64,9 @@ program BadIceCreamGame {

object interactuador{
method obtenerPrimerElemento(key,accion){
const colliders = game.colliders(game.allVisuals().filter({objeto => objeto.image() == datosJugador.imagen()}).head())
const colliders = game.colliders(atajos.jugador())
if (colliders.isEmpty())
throw new DomainException(message = "Apreta "+ key + accion, source = game.allVisuals().filter({objeto => objeto.image() == datosJugador.imagen()}).head())
throw new DomainException(message = "Apreta "+ key + accion, source = atajos.jugador())
return colliders.head()
}
}
32 changes: 24 additions & 8 deletions menus.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import wollok.game.*

import jugador.*

import musica.*

import muros.*

import enemigos.*
Expand Down Expand Up @@ -47,24 +49,29 @@ class MenuPersonaje inherits Menus(add_1 = menuPersonajes, /* add_2 = marcoDeSel
if(marcoDeSeleccion.position().x() == 2){ //elementos del helado
//jugador.valor("helado.png")
datosJugador.imagen("helado.png")
musica.cancion(game.sound("Flow Hero.mp3"))
fondoJuego.valor("f_slime.png")
visual.valor("b_fiesta.png")
spawn.puntos(["bananas.png", "uva.png", "sandia.png"]) //Rompe encapsulamiento?
} else if(marcoDeSeleccion.position().x() == 7){ //elementos del pajarito
//jugador.valor("piopio.png")
datosJugador.imagen("piopio.png")
musica.cancion(game.sound("Flow Hero.mp3"))
fondoJuego.valor("f_pio.png")
visual.valor("b_pio.png")
spawn.puntos(["archaic coin.png", "circus coin.png", "lunaver coin.png"])
} else { //elementos de Goku
//jugador.valor("goku.png")
datosJugador.imagen("goku.png")
musica.cancion(game.sound("Super Survivor.mp3"))
fondoJuego.valor("f_pasto.png")
visual.valor("b_pasto.png")
spawn.puntos(["semilla.png", "capsula.png", "comida.png"])
}
game.removeVisual(menuPersonajes)
game.removeVisual(marcoDeSeleccion)
musica.sonido_on()
musica.sonido_pause()
const menuNivel = new MenuNivel()
menuNivel.cargar()
}
Expand Down Expand Up @@ -95,13 +102,15 @@ class MenuNivel inherits Menus(add_1 = menuNiveles,/* add_2 = seleccionNivel,*/
if(sincronizadorDePantallas.pantallaActual() == tipoDeMenu){
sincronizadorDePantallas.cambiarPantalla("jugar")
if(moverA.position() == game.at(1,11)){ //Seleccionado nivel 1
escenario.generarLista(0)
//escenario.generarLista(0)
escenario.nivelActual(0)
} else if(moverA.position() == game.at(3,11)){ //Seleccionado nivel 2
escenario.generarLista(1)
//escenario.generarLista(1)
escenario.nivelActual(1)
}
game.removeVisual(menuNiveles)
game.removeVisual(moverA)
points.reset()
//points.reset()
juego.jugar()
}
})
Expand All @@ -112,7 +121,7 @@ class MenuGanaste inherits Menus(add_1 = ganaste, /*add_2 = seleccionGanaste,*/
override method cargar(){
super()
//game.removeVisual(jugador)
//game.allVisuals().filter({objeto => objeto.image() == datosJugador.imagen()}).head().eliminate()
//atajos.jugador().eliminate()
lineaEnemiga.enemigo().limpiarEnemigos()
game.removeVisual(fondoJuego)
game.removeVisual(points)
Expand All @@ -135,24 +144,28 @@ class MenuGanaste inherits Menus(add_1 = ganaste, /*add_2 = seleccionGanaste,*/
})
}
}
class MenuPerdiste inherits Menus(add_1 = perdiste, /*add_2 = seleccionGanaste,*/ moverA = new SeleccionGanaste(), cantidadDeIncrementoParaPosiciones = 4, equisMax = 10, equisMin = 6, yeMax = 7, yeMin = 7, tipoDeMenu = "perdedor"){
class MenuPerdiste inherits Menus(add_1 = perdiste, /*add_2 = seleccionGanaste,*/ moverA = new SeleccionPerdiste(), cantidadDeIncrementoParaPosiciones = 4, equisMax = 10, equisMin = 6, yeMax = 6, yeMin = 6, tipoDeMenu = "perdedor"){
override method cargar(){
super()
//game.removeVisual(jugador)
//game.allVisuals().filter({objeto => objeto.image() == datosJugador.imagen()}).head().eliminate()
//atajos.jugador().eliminate()
lineaEnemiga.enemigo().limpiarEnemigos()
game.removeVisual(fondoJuego)
game.removeVisual(points)
escenario.limpiarEscenario()
keyboard.enter().onPressDo({
if(sincronizadorDePantallas.pantallaActual() == tipoDeMenu){
//escenario.generarLista(escenario.nivelActual())
game.removeVisual(moverA)
game.removeVisual(perdiste)
if (moverA.position() == game.at(6, 5)) {
if (moverA.position() == game.at(6, 6)) {
//points.reset()
sincronizadorDePantallas.cambiarPantalla("jugar")
juego.jugar()
//sincronizadorDePantallas.cambiarPantalla("niveles")
//new MenuNivel().cargar()
}
if (moverA.position() == game.at(10, 5)){
if (moverA.position() == game.at(10, 6)){
game.addVisual(finDelJuego)
game.stop()
}
Expand All @@ -165,6 +178,8 @@ object juego{

method jugar(){ //DIBUJO DE LOS ELEMENTOS DEL MUNDO
//dibujar fondo
points.reset()
escenario.generarLista(escenario.nivelActual())
game.addVisual(fondoJuego)
//dibujar frutas
spawn.dibujarFrutas()
Expand All @@ -179,6 +194,7 @@ object juego{
const jugador = new Jugador()
jugador.valor(datosJugador.imagen())
jugador.posicionate()
musica.sonido_continue()
//game.addVisualCharacter(jugador)
muros.crearBordeInferior()
//dibujar puntos
Expand Down
1 change: 1 addition & 0 deletions muros.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ object muros{
}//4.times({unValor => 5.times(action)})

object escenario{
var property nivelActual = null
const niveles = [
//Nivel 1
[game.at(2,15), game.at(3,15), game.at(4,15), game.at(4,14), game.at(2,14), game.at(4,13), game.at(2,13), game.at(2,12), game.at(4,12), //ojo I
Expand Down
20 changes: 20 additions & 0 deletions musica.wlk
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
object musica{
var property cancion = null

method sonido_on(){
self.cancion().volume(0.03)
self.cancion().play()
}

method sonido_off() {
self.cancion().stop()
}

method sonido_pause() {
self.cancion().pause()
}

method sonido_continue() {
self.cancion().resume()
}
}

0 comments on commit 17c841d

Please sign in to comment.