Skip to content

Commit

Permalink
Cambio momento de ejecucion de nuestro collider
Browse files Browse the repository at this point in the history
El "collider" lo hago como schedule ya que asi se ve visualmente que el pj se sube a la meta, en el otro caso no se ve ya que wollok calcula todo antes de ejecutar y cambia de nivel sin avanzar al personaje

DB agrego levels xq la tiene clara

Co-authored-by: Lucas Nahuel Devecchi Di Bella <[email protected]>
  • Loading branch information
FacundoDiezF and lDevecchi committed Oct 3, 2024
1 parent 9740515 commit 461d8a1
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 22 deletions.
72 changes: 55 additions & 17 deletions levels.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ import stickyBlocks.*
const property siguienteNivel

method drawGridMap(){
var y = 10
var y = 9
var x = 0
initialGridMap.forEach({row =>
row.forEach({cell => cell.decode(x, y, self)
Expand Down Expand Up @@ -168,51 +168,89 @@ import stickyBlocks.*

//*==========================| Niveles Instanciados |==========================

//Move Tutorial
const nivel1 = new Nivel(
initialGridMap = [
[v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v],
[v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v],
[v,v,v,v,p,p,p,p,p,p,p,p,p,p,p,v,v,v,v,v],
[v,v,v,v,p,_,_,_,_,p,_,z,_,_,p,v,v,v,v,v],
[v,v,v,v,p,_,m,_,_,_,_,_,_,_,p,v,v,v,v,v],
[v,v,v,v,l,_,x,_,_,_,_,o,g,g,p,v,v,v,v,v],
[v,v,v,v,p,_,_,_,z,_,_,_,g,_,p,v,v,v,v,v],
[v,v,v,v,p,_,_,_,_,p,_,_,_,_,p,v,v,v,v,v],
[v,v,v,v,p,_,m,_,_,p,_,_,_,_,p,v,v,v,v,v],
[v,v,v,v,l,_,_,_,_,_,_,_,g,_,p,v,v,v,v,v],
[v,v,v,v,p,_,_,_,_,_,_,_,_,_,p,v,v,v,v,v],
[v,v,v,v,p,_,_,_,_,_,_,_,_,_,p,v,v,v,v,v],
[v,v,v,v,p,p,p,p,p,p,p,p,p,p,p,v,v,v,v,v],
[v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v]
],
siguienteNivel = nivel2
)

const nivel2 = new Nivel(
//Friend Tutorial
const nivel2 = new Nivel(
initialGridMap = [
[v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v],
[v,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,v],
[v,p,o,o,o,o,o,_,_,_,_,_,_,_,_,_,z,o,p,v],
[v,p,m,x,o,o,x,_,x,o,o,o,x,x,x,_,_,o,p,v],
[l,p,o,_,_,_,_,_,o,o,o,o,o,o,_,_,o,p,l],
[v,p,o,_,_,_,o,o,o,o,o,o,o,o,o,_,_,o,p,v],
[v,p,o,_,_,_,o,o,o,o,o,o,o,o,o,g,g,o,p,v],
[v,p,o,_,z,_,o,o,o,o,o,o,o,o,o,g,o,o,p,v],
[v,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,v],
[v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v],
[v,v,v,v,p,p,p,p,p,p,p,p,p,p,p,v,v,v,v,v],
[v,v,v,v,p,_,_,_,_,p,_,z,_,_,p,v,v,v,v,v],
[v,v,v,v,p,_,m,_,_,p,_,_,_,_,p,v,v,v,v,v],
[v,v,v,v,l,_,_,_,_,_,_,g,_,_,l,v,v,v,v,v],
[v,v,v,v,p,_,_,_,z,_,_,g,g,_,p,v,v,v,v,v],
[v,v,v,v,p,_,_,_,_,_,_,_,_,_,p,v,v,v,v,v],
[v,v,v,v,p,p,p,p,p,p,p,p,p,p,p,v,v,v,v,v],
[v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v]
],
siguienteNivel = nivel3
)

// Friends Levels
const nivel3 = new Nivel(
initialGridMap = [
[v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v],
[v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v],
[v,v,v,v,p,p,p,p,p,p,p,p,p,p,p,v,v,v,v,v],
[v,v,v,v,p,z,p,_,_,_,_,_,_,_,p,v,v,v,v,v],
[v,v,v,v,p,_,g,_,_,_,_,_,_,z,p,v,v,v,v,v],
[v,v,v,v,l,g,g,g,_,p,_,_,_,_,l,v,v,v,v,v],
[v,v,v,v,p,m,g,_,_,p,_,_,_,_,p,v,v,v,v,v],
[v,v,v,v,p,_,_,z,_,p,z,_,_,_,p,v,v,v,v,v],
[v,v,v,v,p,p,p,p,p,p,p,p,p,p,p,v,v,v,v,v],
[v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v]
],
siguienteNivel = nivel4
)

const nivel4 = new Nivel(
initialGridMap = [
[v,v,v,v,v,v,v,p,p,p,l,p,p,p,v,v,v,v,v,v],
[v,v,v,v,p,p,p,p,_,z,_,_,_,p,p,p,p,v,v,v],
[v,v,p,p,p,_,_,_,_,_,_,_,_,_,_,_,p,p,p,v],
[v,v,p,_,_,_,_,z,_,_,z,_,_,_,_,_,_,_,p,v],
[v,v,p,_,_,_,_,_,_,_,_,_,z,_,z,_,_,_,p,v],
[v,v,l,_,_,m,_,_,_,p,p,p,p,_,_,_,_,_,l,v],
[v,v,p,_,_,_,_,_,_,g,g,g,g,_,_,_,_,_,p,v],
[v,v,p,_,_,_,_,_,_,_,g,g,_,_,_,_,_,_,p,v],
[v,v,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,v],
[v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v]
],
siguienteNivel = null
)



const nivelEjemplo = new Nivel(
initialGridMap = [
[v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v],
[v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v],
[v,v,v,v,p,p,p,p,p,p,p,p,p,p,p,v,v,v,v,v],
[v,v,v,v,p,_,_,_,_,p,_,z,_,_,p,v,v,v,v,v],
[v,v,v,v,p,_,m,_,_,_,_,_,_,_,p,v,v,v,v,v],
[v,v,v,v,l,_,x,_,_,_,_,o,g,g,p,v,v,v,v,v],
[v,v,v,v,p,_,m,_,_,p,_,_,_,_,p,v,v,v,v,v],
[v,v,v,v,l,_,x,_,_,_,_,o,g,g,l,v,v,v,v,v],
[v,v,v,v,p,_,_,_,z,_,_,_,g,_,p,v,v,v,v,v],
[v,v,v,v,p,_,_,_,_,_,_,_,_,_,p,v,v,v,v,v],
[v,v,v,v,p,p,p,p,p,p,p,p,p,p,p,v,v,v,v,v],
[v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v]
],
siguienteNivel = null
siguienteNivel = nivel2
)


12 changes: 7 additions & 5 deletions stickyBlocks.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -60,10 +60,11 @@ object juegoStickyBlock {
method openLevelMenu(){
levelMenu.image("OpenMenu.png")
levelMenuIsOpen = true
keyboard.num1().onPressDo({if(menuActivo && levelMenuIsOpen) {nivel1.iniciar() menuActivo = false}})
keyboard.num2().onPressDo({if(menuActivo && levelMenuIsOpen) {nivel2.iniciar() menuActivo = false}})
keyboard.num1().onPressDo({if(menuActivo && levelMenuIsOpen) {nivel1.iniciar() juegoStickyBlock.nivelActual(nivel1) menuActivo = false}})
keyboard.num2().onPressDo({if(menuActivo && levelMenuIsOpen) {nivel2.iniciar() juegoStickyBlock.nivelActual(nivel2) menuActivo = false}})
keyboard.num3().onPressDo({if(menuActivo && levelMenuIsOpen) {nivel3.iniciar() juegoStickyBlock.nivelActual(nivel3) menuActivo = false}})
keyboard.num4().onPressDo({if(menuActivo && levelMenuIsOpen) {nivel4.iniciar() juegoStickyBlock.nivelActual(nivel4) menuActivo = false}})
}

}

//PD: Level menu podría ser un objeto pero...
Expand Down Expand Up @@ -112,7 +113,8 @@ object juegoStickyBlock {

const cuerpoPuedeAvanzar = compis.all({compi => compi.puedeAvanzar(movimiento.nuevaPosicion(compi))})

if(cuerpoPuedeAvanzar) compis.forEach({compi => compi.moveTo(movimiento) compi.collideWhith()}) //Mueve a los elementos del cuerpo //? y ejecuta Nuesto "Collider"
if(cuerpoPuedeAvanzar) compis.forEach({compi => compi.moveTo(movimiento) game.schedule(150, { compi.collideWith() })}) //Mueve a los elementos del cuerpo //? y ejecuta Nuesto "Collider"
//?PD: El "collider" lo hago como schedule ya que asi se ve visualmente que el pj se sube a la meta, en el otro caso no se ve ya que wollok calcula todo antes de ejecutar y cambia de nivel sin avanzar al personaje

//game.flushEvents(game.currentTime()) //! Esto soluciona el problema de la colision pero genra mucho lag 😡😡💢
}
Expand Down Expand Up @@ -171,7 +173,7 @@ object juegoStickyBlock {
position = movimiento.nuevaPosicion(self)
}

method collideWhith(){
method collideWith(){
game.getObjectsIn(position).forEach({objeto => objeto.interactuarConPersonaje(self)}) //? Utilizamos esto como onCollideDo ya que on colide se saltea colisiones y va mas lento
}

Expand Down

0 comments on commit 461d8a1

Please sign in to comment.