Skip to content

Commit

Permalink
boton y puerta adaptados, plataforma simplificada
Browse files Browse the repository at this point in the history
  • Loading branch information
elin-winter committed Oct 28, 2024
1 parent f4dd45d commit 3fc11a7
Show file tree
Hide file tree
Showing 8 changed files with 285 additions and 292 deletions.
File renamed without changes
31 changes: 19 additions & 12 deletions characters.wlk
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import config.*
import visualCarteles.*

class Character {

Expand All @@ -21,19 +22,19 @@ class Character {

// Métodos Sobrescritos en las Subclases

method image() = "" //
method tipo() = "" //
method setupControls() {} //
method image() = ""
method tipo() = ""
method setupControls()

// Métodos Propios

method setPosition (posX, posY){ //
method setPosition (posX, posY){
position = new MutablePosition(x=posX, y=posY)
}

method colision(personaje) {} // // Para que no genere error si colisionan entre personajes
method colision(personaje) {} // Para que no genere error si colisionan entre personajes

method esAtravesable () = true //
method esAtravesable () = true

// Movimientos

Expand Down Expand Up @@ -97,7 +98,7 @@ class Character {
}
}

//Gravedad
// Gravedad

method eventoGravedad ()

Expand All @@ -109,7 +110,7 @@ class Character {
game.removeTickEvent(self.eventoGravedad())
}

//Colisiones
// Colisiones

method setupCollisions() {
game.onCollideDo(self, {element => element.colision(self)})
Expand All @@ -121,22 +122,24 @@ class Character {

method collect () {puntos += 100}

//Muerte de personaje
// Muerte de personaje

method murioPersonaje() = murioPersonaje

method die (){
murioPersonaje = true
game.sound("S_muerte.mp3").play()
game.addVisual(muerte)
game.addVisual(muerteCartel)
game.sound("S_game_over.mp3").play()
game.schedule(3000,{game.removeVisual(muerte)})
game.schedule(3000,{game.removeVisual(muerteCartel)})
nivelActual.cleanVisuals() ///

game.schedule(3500, {nivelActual.start()}) // Reiniciamos el nivel

}


// Con Elementos

method moverALaPar(plataforma) {
plataformaAdherida = plataforma
}
Expand All @@ -147,6 +150,10 @@ class Character {
plataformaAdherida = null
self.gravedad()
}
}

method colisionEspecial(objeto) { // SI HAY ALGO MEJOR, CAMBIAR
objeto.colisionEspecial(self)
}
}

Expand Down
137 changes: 30 additions & 107 deletions config.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,10 @@ import characters.*
import elements.*
import level_1.*
import level_2.*
import visualCarteles.*

object settings {

// ---------------------- Referencias
const niveles = [level1, level2]
var property nivelActual = 0 // Índice del nivel actual
const fondoNuevo = new BackgroundCover()

// ---------------------- Métodos

method init(title, boardground, height, width, cellSize){
Expand All @@ -20,53 +16,25 @@ object settings {
game.cellSize(cellSize) // 1404x1044 // 39x29 = 36px
game.start()
}
method pasarSgteNivel(){

const proxNivel = nivelActual + 1
//if (proxNivel < niveles.size()) { // Avanza al siguiente nivel

game.addVisual(nivelSuperado)
game.sound("S_nivel_pasado.mp3").play()
game.schedule(2000,{game.removeVisual(nivelSuperado)})

game.schedule(2000,{niveles.get(nivelActual).cleanVisuals()})
game.schedule(2000,{game.addVisual(fondoNuevo)})

// CAMBIAR AL FONDO DE NIVEL 2
nivelActual +=1
//Llamamos al nivel 2 (ahora puesto para testear, dps implementar generico)
level2.setupMechanicsInit()
game.schedule(2500,{level2.start()})

// niveles.get(nivelActual).start()
//self.checkLevelCompletion(niveles.get(nivelActual))

//} /*else { // Todos los niveles completados

// game.showMessage("¡Has completado todos los niveles!")

// game.clear()

//}*/
method pasarSgteNivel(){
game.addVisual(nivelSuperadoCartel)
game.sound("S_nivel_pasado.mp3").play()
game.schedule(2000,{game.removeVisual(nivelSuperadoCartel)})
game.schedule(2000,{level1.cleanVisuals()})
game.schedule(3000,{level2.setupMechanicsInit()})
game.schedule(3500,{level2.start()})
}
}

class Level {

// ---------------- JUEGO PRINCIPAL
method image()
method position() = game.origin()
// ---------------------- Referencias

const marcoJuego = []
const charcos = []

// Personajes

//Metodo sobrescrito en cada nivel con sus valores correspondientes

method positionF()
method positionW()
method nivelActual()
// Personajes

const fireboy = new Fireboy(position = self.positionF(),
oldPosition = self.positionF(),
Expand All @@ -77,7 +45,9 @@ class Level {
oldPosition = self.positionW(),
nivelActual = self.nivelActual())

// ---------------------- Métodos

// Inicialización

method start() {
self.setupMarco()
Expand All @@ -86,19 +56,21 @@ class Level {
self.setupCharcos()
self.setupElements() // Bloques, palancas, plataformas, etc.
}


method position() = game.origin()

// Marco y Charco

method estaFueraDelMarco(posicion) = marcoJuego.any({zona => zona.posicionProhibida(posicion)})

method esZonaProhibida(personaje, nuevaPosicion) = charcos.any({charco => charco.posicionProhibida(nuevaPosicion) && !charco.mismoTipo(personaje)})


//Mecánica de Personajes
// Mecanica de los Personajes

method setupCharacters() {
//Seteamos la posicion para que vuelvan a su posicion inicial después de reiniciar el nivel
// Volver a posicion inicial al resetear el nivel
fireboy.setPosition(self.positionF().x(),self.positionF().y())
watergirl.setPosition(self.positionW().x(),self.positionW().y())

watergirl.setPosition(self.positionW().x(),self.positionW().y())
}

method setupMechanicsInit(){
Expand All @@ -112,66 +84,17 @@ class Level {
personaje.setupControls()
personaje.setupCollisions()
}

// Métodos Sobrescritos en los Niveles

method setupDiamonds() {}
method setupElements () {}
method setupCharcos() {}
method cleanVisuals() {}
method setupMarco () {} // Marco de Juego
}




//object level3 inherits Level {} // DEJENLO, NO LO SAQUEN

object puntajes{
method position() = game.center()
// method image() = "puntajes.jpeg"
}

object muerte{
const posX = 6
const posY = 6

method position() = game.at(posX, posY)
method image() = "F_Game_over.png"
}

object nivelSuperado{
const posX = 6
const posY = 6

method position() = game.at(posX, posY)
method image() = "F_Nivel_Superado.png"
method text1() {Fireboy.puntaje()}
method text2() {Watergirl.puntaje()}
}

//Fin de juego

object finJuego{

method position() = game.origin()

method image () = "F_Fin_De_Juego.png"
}

//Manejo de Zonas y Charcos
class Zona {

const xMin
const xMax
const yMin
const yMax

method posicionProhibida (posicion) = posicion.x().between(xMin, xMax) && posicion.y().between(yMin, yMax)
}

class Charco inherits Zona {
const tipo
method setupDiamonds()
method setupElements ()
method setupCharcos()
method cleanVisuals()
method setupMarco ()
method positionF()
method positionW()
method nivelActual()
method image()

method mismoTipo (personaje) = personaje.tipo() == tipo
}
Loading

0 comments on commit 3fc11a7

Please sign in to comment.