Skip to content

Commit

Permalink
Otros cambios varios
Browse files Browse the repository at this point in the history
Co-authored-by: Bruno <[email protected]>
  • Loading branch information
Juanter134 and bcochon committed Nov 13, 2024
1 parent 7f9c1f7 commit 497e6dc
Show file tree
Hide file tree
Showing 13 changed files with 126 additions and 75 deletions.
File renamed without changes
Binary file added assets/frameEjemplo0.jpg
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/frameEjemplo1.jpg
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/frameEjemplo2.jpg
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/miniMiniHueso.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/morcilla.mp3
Binary file not shown.
Binary file added assets/morcillaBatalla.mp3
Binary file not shown.
7 changes: 4 additions & 3 deletions ataques.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,8 @@ const proyectilL7 = new Proyectil(posicionInicial = new PositionMejorada(x = 32,
const proyectilL8 = new Proyectil(posicionInicial = new PositionMejorada(x = 32, y = 4), id = "L8", velocidad = 100, delay = 300, sentido = dirIzquierda)
const proyectilL9 = new Proyectil(posicionInicial = new PositionMejorada(x = 32, y = 5), id = "L9", velocidad = 100, delay = 300, sentido = dirIzquierda)


const proyectilR10 = new Proyectil(posicionInicial = new PositionMejorada(x = 0, y = 2), id = "R10", velocidad = 100, delay = 1000, sentido = dirDerecha)
const proyectilR11 = new Proyectil(posicionInicial = new PositionMejorada(x = 0, y = 7), id = "R11", velocidad = 100, delay = 1000, sentido = dirDerecha)

class Ataque {
const proyectiles
Expand All @@ -62,7 +63,7 @@ const ataqueGato1 = new Ataque(proyectiles = [proyectilDR1, proyectilDR2, proyec
const ataqueGato2 = new Ataque(proyectiles = [proyectilDR3, proyectilDR4, proyectilDR5, proyectilDR6, proyectilDR7])
const ataqueGato3 = new Ataque(proyectiles = [proyectilDL3, proyectilDL4, proyectilDL5, proyectilDL6, proyectilDL7])

const ataqueFinal1 = new Ataque(proyectiles = [proyectilR1, proyectilR2, proyectilL1, proyectilL2, proyectilDR1, proyectilDR2, proyectilDL1, proyectilDL2])
const ataqueFinal1 = new Ataque(proyectiles = [proyectilR1, proyectilL1, proyectilDR1, proyectilDR2, proyectilDL1, proyectilDL2])
const ataqueFinal2 = new Ataque(proyectiles = [proyectilDR3, proyectilDR4, proyectilDR5, proyectilDR6, proyectilDR7, proyectilL1, proyectilR1])
const ataqueFinal3 = new Ataque(proyectiles = [proyectilDL3, proyectilDL4, proyectilDL5, proyectilDL6, proyectilDL7, proyectilR3, proyectilR4, proyectilR8, proyectilR9])
const ataqueFinal4 = new Ataque(proyectiles = [proyectilL6, proyectilL7, proyectilL8, proyectilL9, proyectilR1, proyectilR2])
const ataqueFinal4 = new Ataque(proyectiles = [proyectilL6, proyectilL7, proyectilL8, proyectilL9, proyectilR10, proyectilR11])
67 changes: 6 additions & 61 deletions entorno.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import morcilla.*
import general.*
import jefe.*
import ataques.*
import interfaz.*

object entorno {
var jefesDerrotados = 0
Expand All @@ -12,7 +13,10 @@ object entorno {
}

method limpiarEntorno() {
fondo.fondoOriginal()

game.allVisuals().forEach({visible => game.removeVisual(visible)})
fondo.mostrar()
administradorVidas.mostrarVidas()
}

Expand All @@ -32,7 +36,7 @@ object entorno {
}

if (jefeFinal.derrotado()) {
new Cinematica (position = game.origin(), image = "celda_gris.png", frames = [], id = "FINAL").empezar()
cinematicaFinal.empezar()
}
}

Expand All @@ -56,64 +60,6 @@ class Colisiones {
method image() = "celda_gris.png"
}

// =============================================== VISUALES ===============================================
class Visual {
const property position
var property image

method mostrar() {
if(!game.hasVisual(self))
game.addVisual(self)
}

method ocultar() {
if(game.hasVisual(self))
game.removeVisual(self)
}
}

class Cinematica {
const frames
const id
var frameActual = 0
const property position = game.origin()
var image = "261.jpg"
const duracionFrame = 200

method image() = image

method empezar() {
image = frames.head()
game.onTick(duracionFrame, id, {self.siguienteFrame()})
game.addVisual(self) // arbitrario para saber si funciona

game.schedule(self.duracion(), { self.terminar() })
}

method terminar() {
game.removeTickEvent(id)
game.removeVisual(self)
}

method siguienteFrame() {
if(frameActual +1 < frames.size()) {
frameActual += 1
image = frames.get(frameActual)
}
}

method duracion() = frames.size() * duracionFrame
}

const cartelAtaque = new Visual (position = new Position(x=17, y=20), image = "proto_cartel_ataque.png")
const fondoJefe = new Visual (position = game.origin(), image = "arena_de_jefe.png")

const cinematicaDerrota = new Cinematica (id = "derrota", frames = ["261.jpg"])
const cinematicaAtaque = new Cinematica (id = "ataque", frames = ["261.jpg"])
const cinematicaJefePerro = new Cinematica (id = "gato", frames = ["261.jpg"])
const cinematicaJefeGato = new Cinematica (id = "perro", frames = ["261.jpg"])
const cinematicaJefeFinal = new Cinematica (id = "final", frames = ["261.jpg"])


// =============================================== BOSSFIGHTS ===============================================
class BossFight {
Expand All @@ -124,8 +70,8 @@ class BossFight {

method iniciarPelea() {
if (!jefe.derrotado()) {
game.boardGround("arena_de_jefe.png")
entorno.limpiarEntorno()
fondo.fondoBatalla()
morcilla.mostrar()
morcilla.enBatalla(true)
jefeEnBatalla = true
Expand Down Expand Up @@ -173,7 +119,6 @@ class BossFight {

method finalizarBatalla() {
jefeEnBatalla = false
game.boardGround("stock_fondo2.png")
entorno.jefeDerrotado()
entorno.volverAlHub()

Expand Down
82 changes: 82 additions & 0 deletions interfaz.wlk
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
// =============================================== VISUALES ===============================================
class Visual {
const property position
var property image

method mostrar() {
if(!game.hasVisual(self))
game.addVisual(self)
}

method ocultar() {
if(game.hasVisual(self))
game.removeVisual(self)
}
}

class Cinematica {
const frames
const id
var frameActual = 0
const property position = game.origin()
var image = "261.jpg"
const duracionFrame

method image() = image

method empezar() {
image = frames.head()
game.onTick(duracionFrame, id, {self.siguienteFrame()})
game.addVisual(self) // arbitrario para saber si funciona

game.schedule(self.duracion(), { self.terminar() })
}

method terminar() {
game.removeTickEvent(id)
game.removeVisual(self)
frameActual = 0
}

method siguienteFrame() {
if(frameActual +1 < frames.size()) {
frameActual += 1
image = frames.get(frameActual)
}
}

method duracion() = frames.size() * duracionFrame
}

const cartelAtaque = new Visual (position = new Position(x=17, y=20), image = "proto_cartel_ataque.png")

object fondo inherits Visual(position = game.origin(), image = "vacio.png"){
method fondoBatalla(){
image = "arena_de_jefe.jpg"
}

method fondoOriginal(){
image = "vacio.png"
}
}

const cinematicaDerrota = new Cinematica (id = "derrota", duracionFrame = 300, frames = ["frameEjemplo0.jpg", "frameEjemplo1.jpg", "frameEjemplo2.jpg"])
const cinematicaAtaque = new Cinematica (id = "ataque", duracionFrame = 300, frames = ["frameEjemplo0.jpg", "frameEjemplo1.jpg", "frameEjemplo2.jpg"])
const cinematicaJefePerro = new Cinematica (id = "gato", duracionFrame = 300, frames = ["frameEjemplo0.jpg", "frameEjemplo1.jpg", "frameEjemplo2.jpg"])
const cinematicaJefeGato = new Cinematica (id = "perro", duracionFrame = 300, frames = ["frameEjemplo0.jpg", "frameEjemplo1.jpg", "frameEjemplo2.jpg"])
const cinematicaJefeFinal = new Cinematica (id = "final", duracionFrame = 300, frames = ["frameEjemplo0.jpg", "frameEjemplo1.jpg", "frameEjemplo2.jpg"])
const cinematicaFinal = new Cinematica (id = "FINAL", duracionFrame = 300, frames = ["frameEjemplo0.jpg", "frameEjemplo1.jpg", "frameEjemplo2.jpg"])


// =============================================== SONIDOS ===============================================

// class Sonido {
// const sonido
// const

// method play(){
// game.sound(sonido).play()
// }


// }
9 changes: 3 additions & 6 deletions main.wpgm
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import morcilla.*
import entorno.*
import jefe.*
import proyectiles.*
import interfaz.*

program MorcillaGame {
game.title("La Bizarra Aventura de MORCILLA")
Expand All @@ -12,10 +13,7 @@ program MorcillaGame {
game.width(33)
game.cellSize(100)

fondoJefe.mostrar()

keyboard.t().onPressDo({ fondoJefe.image("arena_de_jefe.png") })
keyboard.o().onPressDo({ fondoJefe.image("vacio.png") })
fondo.mostrar()

jefePerro.mostrar()
jefeGato.mostrar()
Expand All @@ -32,9 +30,8 @@ program MorcillaGame {
keyboard.d().onPressDo({ morcilla.caminarDerecha(1) })
keyboard.a().onPressDo({ morcilla.caminarIzquierda(1) })
keyboard.space().onPressDo({ morcilla.saltar(1000) })


game.whenCollideDo(morcilla, {elemento => elemento.tocaMorcilla()})
morcilla.crearHitbox()

game.start()
}
32 changes: 29 additions & 3 deletions morcilla.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,11 @@ import wollok.game.*
import general.*
import entorno.*
import jefe.*
import interfaz.*

object morcilla inherits Personaje{
var property position = self.posicionInicial()
const vidaInicial = 3
const vidaInicial = 5

// ================================== MOVIMIENTO ==================================
var saltando = false
Expand Down Expand Up @@ -113,6 +114,13 @@ object morcilla inherits Personaje{
enBatalla = estado
}

method crearHitbox() {
const hitbox = [hitboxMorcilla0, hitboxMorcilla1, hitboxMorcilla2, hitboxMorcilla3]
hitbox.forEach({hitbox => hitbox.inicializar()})
}

method tocaMorcilla() {}

method iniciarPeleaMorcilla(jefe, espera){
if(!enBatalla) {
self.desactivarMovimiento()
Expand Down Expand Up @@ -208,7 +216,7 @@ object administradorVidas {
const vida2 = new VidaMorcilla(position = new PositionMejorada(x = 4, y = 29), id = 2)
const vida3 = new VidaMorcilla(position = new PositionMejorada(x = 7, y = 29), id = 3)
const vida4 = new VidaMorcilla(position = new PositionMejorada(x = 10, y = 29), id = 4)
const vida5 = new VidaMorcilla(position = new PositionMejorada(x = 12, y = 29), id = 5)
const vida5 = new VidaMorcilla(position = new PositionMejorada(x = 13, y = 29), id = 5)

const vidas = [vida1, vida2, vida3, vida4, vida5]

Expand All @@ -219,4 +227,22 @@ object administradorVidas {
method actualizarVida(vidaActual) {
vidas.forEach({sprite => if(sprite.id() > vidaActual){sprite.perderVida()}else{sprite.tenerVida()}})
}
}
}

class Hitbox {
const desvioY
const desvioX

method image() = "vacio.png"

method position() = new PositionMejorada(x = morcilla.position().x() + desvioX, y = morcilla.position().y() + desvioY)

method inicializar() {
game.whenCollideDo(self, {elemento => elemento.tocaMorcilla()})
}
}

const hitboxMorcilla0 = new Hitbox(desvioX = 0, desvioY = 0)
const hitboxMorcilla1 = new Hitbox(desvioX = 0, desvioY = 1)
const hitboxMorcilla2 = new Hitbox(desvioX = 1, desvioY = 0)
const hitboxMorcilla3 = new Hitbox(desvioX = 1, desvioY = 1)
4 changes: 2 additions & 2 deletions proyectiles.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class Proyectil {
const delay
const sentido

method image() = "ataque_prueba.png"
method image() = "miniMiniHueso.png"

method delay() = delay + 1000

Expand All @@ -40,7 +40,7 @@ class Proyectil {

method movimiento() {
position.horizontalMejorado(sentido.x(), sentido.limiteIzq(), sentido.limiteDer())
position.verticalMejorado(sentido.y(), 99, -1)
position.verticalMejorado(sentido.y(), 99, -4)
if(position.x() == sentido.limiteIzq() || position.x() == sentido.limiteDer())
{
game.removeVisual(self)
Expand Down

0 comments on commit 497e6dc

Please sign in to comment.