Skip to content

Commit

Permalink
gokú_Kame muere si es impactado, pero código mejorable
Browse files Browse the repository at this point in the history
  • Loading branch information
LucianoSantinoValenzuelaMaltas committed Oct 29, 2024
1 parent 8325673 commit 31aae21
Show file tree
Hide file tree
Showing 5 changed files with 90 additions and 29 deletions.
18 changes: 17 additions & 1 deletion enemigos.wlk
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
import menus.*


class Enemigo1{
var property position = game.at(4,16)
var lado = 0
var property vida
method image() = "cell1.png"

method moverseH(limite1, limite2){
Expand All @@ -22,14 +26,26 @@ class Enemigo1{
}
}

method herido() {
vida -= 50
if(vida == 0){
self.morir()
}
}

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

method limpiarEnemigos(){
game.removeVisual(self)
}

}

object lineaEnemiga{
var property enemigo = new Enemigo1()
var property enemigo = new Enemigo1(vida = 150)

method activar(){
game.addVisual(enemigo)
Expand Down
45 changes: 40 additions & 5 deletions jugador.wlk
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import enemigos.*
import muros.*

import menus.*
Expand All @@ -15,7 +16,9 @@ class Jugador inherits FiguraConMovimiento(position = game.at(1, 1)) {
}

method volver(){
game.addVisualCharacter(self)
if(sincronizadorDePantallas.pantallaActual() == "jugar"){
game.addVisualCharacter(self)
}
}

var property valor = "helado.png"
Expand All @@ -30,6 +33,12 @@ class Jugador inherits FiguraConMovimiento(position = game.at(1, 1)) {
game.removeVisual(self)
}

method impactado() {
self.eliminate()
sincronizadorDePantallas.cambiarPantalla("perdedor")
new MenuPerdiste().cargar()
}

method atacarDerecha() = new KamehamehaDerecha().energia(self.position(), "goku_Kamehameha_Derecha.png", 1)
method atacarIzquierda() = new KamehamehaIzquierda().energia(self.position(), "goku_Kamehameha_Izquierda.png", -1)
}
Expand All @@ -42,15 +51,33 @@ object gokuAtacando {
var property position = null
var property lado = null
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(){
game.removeVisual(self)
}

}

class KamehamehaDerecha{
var personaje = null
var property impacto = 0

var property position = null

method image() = "kamehameha_Derecha.png"

method impactado() {
//game.allVisuals().filter({objeto => objeto.image() == Enemigo1.image()}).head().herido()
lineaEnemiga.enemigo().herido()
self.impacto(1)
}

method energia(posicion, lado, valor){
gokuAtacando.lado(lado)
gokuAtacando.position(posicion)
Expand All @@ -67,19 +94,23 @@ class KamehamehaDerecha{
method lugarValido() = escenario.mismaPosicion(self.position())

method avanzar(){
if(!escenario.mismaPosicion(game.at(self.position().x() + 1, self.position().y())) && self.position().x() + 1 < game.width() - 1){
if(!escenario.mismaPosicion(game.at(self.position().x() + 1, self.position().y())) && self.position().x() + 1 < game.width() - 1 && impacto < 1 && sincronizadorDePantallas.pantallaActual() != "perdedor"){
self.position(game.at(self.position().x() + 1, self.position().y()))
game.schedule(500, {self.avanzar()})
}
else{
personaje.position(gokuAtacando.position())
personaje.volver()
self.eliminate()
gokuAtacando.eliminate()
if(sincronizadorDePantallas.pantallaActual() == "perdedor"){
new MenuPerdiste().cargar()
}
}
}

method eliminate(){
game.removeVisual(gokuAtacando)
//game.removeVisual(gokuAtacando)
game.removeVisual(self)
}
}
Expand All @@ -88,15 +119,19 @@ class KamehamehaIzquierda inherits KamehamehaDerecha{
override method image() = "kamehameha_Izquierda.png"

override method avanzar(){
if(!escenario.mismaPosicion(game.at(self.position().x() - 1, self.position().y())) && self.position().x() - 1 > 0){
if(!escenario.mismaPosicion(game.at(self.position().x() - 1, self.position().y())) && self.position().x() - 1 > 0 && impacto < 1 && sincronizadorDePantallas.pantallaActual() != "perdedor"){
self.position(game.at(self.position().x() - 1, self.position().y()))
game.schedule(500, {self.avanzar()})
}
else{
personaje.position(gokuAtacando.position())
personaje.volver()
self.eliminate()
}
gokuAtacando.eliminate()
if(sincronizadorDePantallas.pantallaActual() == "perdedor"){
new MenuPerdiste().cargar()
}
}
}
}

Expand Down
50 changes: 28 additions & 22 deletions mainExample.wpgm
Original file line number Diff line number Diff line change
Expand Up @@ -24,36 +24,42 @@ program BadIceCreamGame {


//Juego puntos
keyboard.r().onPressDo({
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)
points.sumarFrutas()
}
if(points.frutasObtenidas() == 10 || points.frutasObtenidas() == 20){
spawn.dibujarFrutas()
}
if(points.frutasObtenidas() == 30){
sincronizadorDePantallas.cambiarPantalla("ganador")
//const menuGanaste = new MenuGanaste()
//menuGanaste.cargar()
new MenuGanaste().cargar()
keyboard.r().onPressDo({
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)
points.sumarFrutas()
}
if(points.frutasObtenidas() == 10 || points.frutasObtenidas() == 20){
spawn.dibujarFrutas()
}
if(points.frutasObtenidas() == 30){
sincronizadorDePantallas.cambiarPantalla("ganador")
//const menuGanaste = new MenuGanaste()
//menuGanaste.cargar()
new MenuGanaste().cargar()
}
}

})

keyboard.e().onPressDo({game.allVisuals().filter({objeto => objeto.image() == datosJugador.imagen()}).head().atacarDerecha()})
keyboard.q().onPressDo({game.allVisuals().filter({objeto => objeto.image() == datosJugador.imagen()}).head().atacarIzquierda()})
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()}})


// Si tocas shift se gana el juego automaticamente. Asi cuando probamos no tenemos que jugarlo completo. Despues esto se saca.
keyboard.shift().onPressDo({
sincronizadorDePantallas.cambiarPantalla("ganador")
/*const menuGanaste = new MenuGanaste()
menuGanaste.cargar()})*/
new MenuGanaste().cargar()})
if(sincronizadorDePantallas.habilitar()){
sincronizadorDePantallas.cambiarPantalla("ganador")
/*const menuGanaste = new MenuGanaste()
menuGanaste.cargar()})*/
new MenuGanaste().cargar()
}
})

game.onCollideDo(lineaEnemiga.enemigo(), {elemento => if(elemento.jugador()){ elemento.eliminate() sincronizadorDePantallas.cambiarPantalla("perdedor") new MenuPerdiste().cargar()}})
game.onCollideDo(lineaEnemiga.enemigo(), {elemento => elemento.impactado()})
}

object interactuador{
Expand Down
4 changes: 3 additions & 1 deletion menus.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,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()
//game.allVisuals().filter({objeto => objeto.image() == datosJugador.imagen()}).head().eliminate()
lineaEnemiga.enemigo().limpiarEnemigos()
game.removeVisual(fondoJuego)
game.removeVisual(points)
Expand Down Expand Up @@ -195,6 +195,8 @@ object sincronizadorDePantallas{
pantalla = nuevaPantalla
}
method pantallaActual() = pantalla

method habilitar() = pantalla == "jugar"
}

object laMuerte {
Expand Down
2 changes: 2 additions & 0 deletions puntos.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ class Fruta{

method jugador() = false

method impactado() = null

method image(){
if(points.frutasObtenidas() < 10){
return spawn.puntos().get(0)
Expand Down

0 comments on commit 31aae21

Please sign in to comment.