diff --git a/ProximosPasos.md b/ProximosPasos.md index 05c583b..b8be20f 100644 --- a/ProximosPasos.md +++ b/ProximosPasos.md @@ -10,4 +10,8 @@ - [ ] Agregar sonidos de colisiones. - [ ] Modelar mecánica de goles............y de fin de partida. - [ ] Agregar menú? -- [ ] Agregar ¿tarjetas? para afectar al otro jugador (tarjeta roja lo deja quieto por ej.). \ No newline at end of file +- [X] Agregar ¿tarjetas? para afectar al otro jugador (tarjeta roja lo deja quieto por ej.). +- DELEGAR Y MODULARIZAR CON OBJETOS Y METODOS, ELIMINAR ALGORITMIA PROCEDURAL DE C. +- EN COLISION, NO PREGUNTAR SI CHOCA CON BANANA. USAR MENSAJES: CUANDO ALGO CHOCA CON UNA BANANA, MANDARLE UN MENSAJE + A ESE ALGO (MOVETE). +- SOBRE EL REMOVE VISUAL: EL OBJETO SIGUE ESTANDO PORQUE ESTÁ LA REFERENCIA (CONSTANTE). HAY QUE MODIFICAR ESO. \ No newline at end of file diff --git a/assets/coke.png b/assets/coke.png deleted file mode 100644 index 7721d63..0000000 Binary files a/assets/coke.png and /dev/null differ diff --git a/assets/crunch.mp3 b/assets/crunch.mp3 deleted file mode 100644 index cc5c848..0000000 Binary files a/assets/crunch.mp3 and /dev/null differ diff --git a/assets/gaseosa.png b/assets/gaseosa.png deleted file mode 100644 index 7721d63..0000000 Binary files a/assets/gaseosa.png and /dev/null differ diff --git a/assets/pitch.jpg b/assets/pitch.jpg deleted file mode 100644 index 9065834..0000000 Binary files a/assets/pitch.jpg and /dev/null differ diff --git a/assets/rangoPelota.png b/assets/rangoPelota.png deleted file mode 100644 index 37a25f7..0000000 Binary files a/assets/rangoPelota.png and /dev/null differ diff --git a/main.wpgm b/main.wpgm index 23769d9..f75d8ee 100644 --- a/main.wpgm +++ b/main.wpgm @@ -41,14 +41,19 @@ program FulbotGame { // OBJETOS Y REFERENCIAS // Jugadores - const jugador1 = new Jugador( cansancio = 0, imagen = "argentino.png", position = new MutablePosition(x=125, y=50)) + const jugador1 = new Jugador( cansancio = 0, imagen = "argentino.png", position = new MutablePosition(x=122, y=50)) const jugador2 = new Jugador( cansancio = 0, imagen = "brasilero.png", position = new MutablePosition(x=95, y=50)) // Items - const pelota = new Item( imagen = "pelota.png", position = game.at(110, 50), frase = "") + const pelota = new Item( imagen = "pelota.png", position = game.at(110, 50), frase = "") const bananaPeel1 = new CascaraBanana( imagen = "bananaPeel.png", frase = "Noooooooo") const bananaPeel2 = new CascaraBanana( imagen = "bananaPeel.png", frase = "Noooooooo") const bananaPeel3 = new CascaraBanana( imagen = "bananaPeel.png", frase = "Noooooooo") + const cono1 = new Item( imagen = "cono.png", position = game.at(10, 56), frase = "") + const cono2 = new Item( imagen = "cono.png", position = game.at(10, 42), frase = "") + const cono3 = new Item( imagen = "cono.png", position = game.at(208, 56), frase = "") + const cono4 = new Item( imagen = "cono.png", position = game.at(208, 42), frase = "") + // Tarjetas const tarjetaAmarilla = new Tarjetas( imagen = "yellowCard.png", frase = "Toma amarilla", cantidad = 20) @@ -64,20 +69,20 @@ program FulbotGame { const agua2 = new Consumible( energia = 20, imagen = "agua.png", frase = "Rica agua!") // Arcos - const arco1X = game.width() / 2 - 5 // Coordenada x de la portería 1 (izquierda) - const arco1Y = 0 // Coordenada y de la portería 1 - const arco1Ancho = 10 // Ancho de la portería 1 - const arco1Alto = 5 // Alto de la portería 1 + const arco1X = 208 // Coordenada x de la portería 1 (izquierda) + const arco1Y = 50 // Coordenada y de la portería 1 + const arco1Ancho = 5 // Ancho de la portería 1 + const arco1Alto = 10 // Alto de la portería 1 - const arco2X = game.width() / 2 - 5 // Coordenada x de la portería 2 (derecha) - const arco2Y = game.height() - 10 // Coordenada y de la portería 2 - const arco2Ancho = 10 // Ancho de la portería 2 - const arco2Alto = 5 // Alto de la portería 2 + const arco2X = 10 // Coordenada x de la portería 2 (derecha) + const arco2Y = 50 // Coordenada y de la portería 2 + const arco2Ancho = 5 // Ancho de la portería 2 + const arco2Alto = 10 // Alto de la portería 2 // Marcadores de goles var golesJugador1 = 0 var golesJugador2 = 0 // Comprobar si la pelota entra en el arco del jugador 1 - const proximidad = 4 + const proximidad = 5 // EVENTOS PROGRAMADOS @@ -107,9 +112,9 @@ program FulbotGame { game.onTick(1000, "recupera energia", { jugador2.recuperarEnergia(20) }) game.onTick(2000, "se mueve", { tarjetaRoja.moverseAlAzar() }) game.onTick(5000, "se mueve", { tarjetaAmarilla.moverseAlAzar() }) - game.onTick(8000, "se mueve", { bananaPeel1.moverseAlAzar() }) - game.onTick(8000, "se mueve", { bananaPeel2.moverseAlAzar() }) - game.onTick(8000, "se mueve", { bananaPeel3.moverseAlAzar() }) + //game.onTick(8000, "se mueve", { bananaPeel1.moverseAlAzar() }) + //game.onTick(8000, "se mueve", { bananaPeel2.moverseAlAzar() }) + //game.onTick(8000, "se mueve", { bananaPeel3.moverseAlAzar() }) game.onTick(5000, "se mueve", { comida.moverseAlAzar() }) game.onTick(5000, "se mueve", { banana1.moverseAlAzar() }) game.onTick(5000, "se mueve", { banana2.moverseAlAzar() }) @@ -119,8 +124,13 @@ program FulbotGame { game.onTick(10000, "se mueve", { agua2.moverseAlAzar() }) // COLISIONES -/* - game.onTick(100, "chequeo de colisiones", { + /* + game.whenCollideDo(jugador2, { + game.say(jugador2,jugador2.decir("Me choque con algo!!")) + }) + */ + + /*game.onTick(100, "chequeo de colisiones", { // CON CONSUMIBLES /* if ((jugador1.position().x() - gaseosa1.position().x()).abs() < 5 and @@ -170,6 +180,7 @@ program FulbotGame { jugador1.moverseArriba(5) jugador1.moverseDerecha(10) game.say(jugador1, jugador1.decir("Noooooooo")) + //bananaPeel1.moverse(0,0) game.removeVisual(bananaPeel1) } if ((jugador1.position().x() - bananaPeel2.position().x()).abs() < 5 and @@ -177,6 +188,7 @@ program FulbotGame { jugador1.moverseArriba(5) jugador1.moverseDerecha(10) game.say(jugador1, jugador1.decir("Noooooooo")) + //bananaPeel2.moverse(0,0) game.removeVisual(bananaPeel2) } if ((jugador1.position().x() - bananaPeel3.position().x()).abs() < 5 and @@ -184,8 +196,20 @@ program FulbotGame { jugador1.moverseArriba(5) jugador1.moverseDerecha(10) game.say(jugador1, jugador1.decir("Noooooooo")) + //bananaPeel3.moverse(0,0) game.removeVisual(bananaPeel3) } + if ((jugador1.position().x() - cerveza.position().x()).abs() < 5 and + (jugador1.position().y() - cerveza.position().y()).abs() < 5) { + jugador1.decir("ESTOY MAREADO") + game.schedule(10000, jugador1.efectoAlReves(jugador1)) + game.removeVisual(cerveza) + jugador1.decir("NO TOMO MAS") + keyboard.w().onPressDo({ jugador1.moverseArriba(5) }) + keyboard.a().onPressDo({ jugador1.moverseIzquierda(5) }) + keyboard.s().onPressDo({ jugador1.moverseAbajo(5) }) + keyboard.d().onPressDo({ jugador1.moverseDerecha(5) }) + } // CON TARJETAS if ((jugador1.position().x() - tarjetaAmarilla.position().x()).abs() < 5 and @@ -213,19 +237,19 @@ program FulbotGame { game.removeVisual(tarjetaRoja) } - // CON PELOTA + // CON PELOTA: DRIBBLING if ((jugador1.position().x() - pelota.position().x()).abs() < proximidad && (jugador1.position().y() - pelota.position().y()).abs() < proximidad) { // Empuja la pelota en la dirección de movimiento del jugador if (jugador1.position().x() < pelota.position().x()) { - pelota.moverse(pelota.position().x() + 3, pelota.position().y()) + pelota.moverse(pelota.position().x() + 5, pelota.position().y()) } else if (jugador1.position().x() > pelota.position().x()) { - pelota.moverse(pelota.position().x() - 3, pelota.position().y()) + pelota.moverse(pelota.position().x() - 5, pelota.position().y()) } if (jugador1.position().y() < pelota.position().y()) { - pelota.moverse(pelota.position().x(), pelota.position().y() + 3) + pelota.moverse(pelota.position().x(), pelota.position().y() + 5) } else if (jugador1.position().y() > pelota.position().y()) { - pelota.moverse(pelota.position().x(), pelota.position().y() - 3) + pelota.moverse(pelota.position().x(), pelota.position().y() - 5) } } if ((jugador2.position().x() - pelota.position().x()).abs() < proximidad && @@ -241,8 +265,8 @@ program FulbotGame { } else if (jugador2.position().y() > pelota.position().y()) { pelota.moverse(pelota.position().x(), pelota.position().y() - 5) } - }*/ - /* + } + / CON PELOTA: GOLES if (pelota.position().x() >= arco1X && pelota.position().x() <= (arco1X + arco1Ancho) && pelota.position().y() >= arco1Y && pelota.position().y() <= (arco1Y + arco1Alto)) { golesJugador2 += 1 diff --git a/objects.wlk b/objects.wlk index 4a0d8e8..309bf87 100644 --- a/objects.wlk +++ b/objects.wlk @@ -8,7 +8,16 @@ class Jugador { method position() = position method cansancio() = cansancio method goles() = goles + method consumir(consumible) { + cansancio = 0.max(cansancio - consumible.energia()) + } + method efectoAlReves(jugador) { + keyboard.s().onPressDo({ jugador.moverseArriba(5) }) + keyboard.d().onPressDo({ jugador.moverseIzquierda(5) }) + keyboard.w().onPressDo({ jugador.moverseAbajo(5) }) + keyboard.a().onPressDo({ jugador.moverseDerecha(5) }) + } method recuperarEnergia(energia) { cansancio = 0.max(cansancio - energia)cansancio = 0.max(cansancio - energia)