Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feedback #1

Open
wants to merge 56 commits into
base: feedback
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
71c7572
Setting up GitHub Classroom Feedback
github-classroom[bot] Sep 27, 2024
bb62161
creo objeto juegoDeDinosaurio
joaquin-burgio Oct 1, 2024
f376762
se agregan: objeto dinosaurio y clase Cactus
joaquin-burgio Oct 1, 2024
06eed2e
avanzo con los metodos "teChocoElDino" y "salta"
joaquin-burgio Oct 15, 2024
dc23f92
Agrego clase "Moneda" (con imagen) y tests de obstaculos
gonzgrillo Oct 17, 2024
3c73452
cambio la forma en la que aparecen obstaculos/powerups/monedas en la …
joaquin-burgio Nov 2, 2024
1a1fad7
evito repetir logica en crearObjetoRaso y crearObjetoConAltura
joaquin-burgio Nov 2, 2024
5c878a2
cambio el modo en que se crean los obstaculos
joaquin-burgio Nov 5, 2024
fc6f193
cambio la forma de decidir la altura del obstaculo creado
joaquin-burgio Nov 5, 2024
af6039c
Agrego Powerup Inmunidad
gonzgrillo Nov 6, 2024
a786fd9
Agregar un PowerUP
MaxiAlexVargas Nov 6, 2024
0fe14eb
-Agregar un powerUP (modificacion en el keyboard)
MaxiAlexVargas Nov 6, 2024
6500ccc
Agrego para sacar la inmunidad al saltar
MaxiAlexVargas Nov 7, 2024
45e4eda
Agregar fondo al Game
MaxiAlexVargas Nov 7, 2024
a795f26
Add files via upload
MaxiAlexVargas Nov 7, 2024
9d01d2c
Add files via upload
MaxiAlexVargas Nov 7, 2024
089df1d
Actualizacion de Visuales y posicionamiento de objetos
MaxiAlexVargas Nov 7, 2024
3c84097
Agregamos correcciones
MaxiAlexVargas Nov 7, 2024
cf6acd2
implemento los estados del dino: normal, dobleSalto e inmune
joaquin-burgio Nov 9, 2024
a8d8b5c
Delete assets/Carpincho.png
joaquin-burgio Nov 9, 2024
67e9d20
Delete assets/fondoBosque.jpg
joaquin-burgio Nov 9, 2024
009bb1e
Delete assets/frutilla.png
joaquin-burgio Nov 9, 2024
671ec99
Add files via upload
joaquin-burgio Nov 9, 2024
8646bf4
Delete assets/frutilla.png
joaquin-burgio Nov 9, 2024
fd318f1
Add files via upload
joaquin-burgio Nov 9, 2024
6722ce4
Delete assets/frutilla.png
joaquin-burgio Nov 9, 2024
440051e
Add files via upload
joaquin-burgio Nov 9, 2024
2841107
Update example.wlk
joaquin-burgio Nov 9, 2024
812603c
Update example.wlk
joaquin-burgio Nov 9, 2024
02e4c6e
modifico la posicion donde aparecen los obstaculos asi pueden colisio…
joaquin-burgio Nov 9, 2024
6f22f2d
creo el objeto puntos
joaquin-burgio Nov 9, 2024
cf7f55b
Agrego sonido salto
Lucard02 Nov 9, 2024
bb48a64
Arreglo sintaxis de salto
Lucard02 Nov 10, 2024
afc7868
Sonido agarrar moneda
Lucard02 Nov 10, 2024
80b6aa2
creo objetos que te avisen si sos inmune o si tenes doble salto
joaquin-burgio Nov 10, 2024
e2f77c8
avisos de inmunidad y doble salto
joaquin-burgio Nov 11, 2024
022c307
Agrego conejo, lobo, mosquito, escudo y alas
Lucard02 Nov 12, 2024
06126cc
Update example.wlk
joaquin-burgio Nov 12, 2024
b925960
Delete assets/frutilla2.png
joaquin-burgio Nov 12, 2024
59ec965
Update README.md
Lucard02 Nov 13, 2024
d51c629
Imagen BonnieGame
Lucard02 Nov 13, 2024
15f993d
Arreglo que solo aparecia mensaje de doblesalto
Lucard02 Nov 14, 2024
ca0e01e
Sonido golpe mosquito
Lucard02 Nov 14, 2024
9d61784
Sonidos buffeos
Lucard02 Nov 14, 2024
a32d7f6
Agrego tests choque con moneda y mosquito
Lucard02 Nov 14, 2024
a0cd457
Agrego tests de buffeos
Lucard02 Nov 14, 2024
725cb17
Cambio nombre de los obstaculos
gonzgrillo Nov 14, 2024
b94cd75
Agregar diagrama estatico
gonzgrillo Nov 14, 2024
e49022b
Actualizo diagrama estatico
gonzgrillo Nov 14, 2024
2c31a6c
Delete DiagramaEstaticoBonnieGame.png
gonzgrillo Nov 14, 2024
285a5ce
Agrego diagrama estatico
gonzgrillo Nov 14, 2024
af4ed56
Agrego tests
Lucard02 Nov 14, 2024
38b4df3
Update README.md
Lucard02 Nov 14, 2024
efd74ca
Agrego musica de fondo
Lucard02 Nov 14, 2024
9b46cf2
Update README.md
Lucard02 Nov 14, 2024
67ed8ab
Si se tiene menos de 0 puntos se pierde
Lucard02 Nov 14, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added DiagramaEstaticoBonnieGame.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
69 changes: 62 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,77 @@
# (reemplazar nombre de juego acá)
# Bonnie

UTN - Facultad Regional Buenos Aires - Materia Paradigmas de Programación

## Equipo de desarrollo:

- completar...
- completar...
- Joaquin Burgio
- Maximiliano Alexander Vargas
- Lucas Fajardo
- Gonzalo Grillo


## Capturas

![pepita](assets/golondrina.png)
![Bonnie](assets/BonnieGame.png)

## Reglas de Juego / Instrucciones

(completar...)
¡Bienvenido a **"Bonnie"**! Ayuda a nuestro valiente conejo a esquivar y recolectar objetos mientras avanza en su camino. Pero ten cuidado: ¡no todo lo que aparece es bueno! Tienes que reaccionar rápido para sobrevivir y ganar la mayor cantidad de puntos posible.

## Objetivo del Juego

Tu objetivo es avanzar lo más lejos posible mientras esquivas objetos peligrosos y recoges monedas para sumar puntos. ¡Recuerda, todo puede pasar en cualquier momento!

## Objetos que encontrarás

1. **Lobo (Malo)**
- **Efecto**: Si chocas con un lobo, el juego termina de inmediato. ¡Cuidado!
- **Consejo**: ¡Esquívalo a toda costa!

2. **Mosquito (Malo)**
- **Efecto**: Si chocas con un mosquito, perderás **4 puntos**.
- **Consejo**: A veces es mejor dejarlo pasar que arriesgarse.

3. **Moneda Dorada (Buena)**
- **Efecto**: Si chocas con una moneda dorada, ganarás **8 puntos**.
- **Consejo**: ¡Aprovecha cada oportunidad para coleccionar monedas!

4. **Escudo Azul (Beneficioso)**
- **Efecto**: Si chocas con un escudo azul, tu conejo se vuelve **inmune durante 7 segundos**. Durante este tiempo, no puedes ser dañado por ningún objeto malo.
- **Consejo**: Usa el escudo para atravesar zonas peligrosas con seguridad.

5. **Alas (Beneficioso)**
- **Efecto**: Si chocas con unas alas, tu conejo ganará la habilidad de **doble salto durante 7 segundos**.
- **Consejo**: El doble salto es ideal para esquivar obstáculos altos o saltar a zonas difíciles de alcanzar.

## Importante sobre los efectos de los objetos

- Si obtienes tanto el **escudo azul** como las **alas** en el mismo juego, solo se aplicará el último efecto que hayas recogido. ¡Elige bien qué objeto recoger!
- Se pierde inmunidad al saltar

## Reglas Básicas

- Esquiva el **lobo** a toda costa, ya que un choque con él terminará el juego.
- Si tocas el **mosquito**, perderás puntos, pero no terminarás el juego.
- Intenta recolectar las **monedas doradas** para sumar puntos.
- Usa el **escudo azul** y las **alas** estratégicamente para mejorar tu rendimiento y evitar daños.

## Puntaje

- **Moneda dorada**: +8 puntos
- **Mosquito**: -4 puntos
- **Lobo**: Fin del juego

## Consejos

- Siempre mantén los ojos bien abiertos: los objetos caen rápido y a veces no hay tiempo para pensar.
- Aprovecha el **doble salto** para evitar obstáculos o alcanzar objetos difíciles de conseguir.
- El **escudo azul** es una gran herramienta para atravesar zonas llenas de objetos peligrosos sin riesgo.

## ¡Desafía a tus amigos y demuestra quién es el mejor esquivador de conejos!

## Controles:

- `W` para...
- **Flecha arriba**: Saltar
- **Letra P **: Pausar musica


Binary file added assets/BonnieGame.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/alas3.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/alasBuff.mp3
Binary file not shown.
Binary file added assets/bosque.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/buff.mp3
Binary file not shown.
Binary file added assets/conejito.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/dinoCoin.mp3
Binary file not shown.
Binary file added assets/escudo1.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 removed assets/golondrina.png
Binary file not shown.
Binary file added assets/golpeMosquito.mp3
Binary file not shown.
Binary file added assets/lobo1.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/moneda.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/mosquito.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/musiquita.mp3
Binary file not shown.
Binary file added assets/saltoDino.mp3
Binary file not shown.
267 changes: 267 additions & 0 deletions example.wlk
Original file line number Diff line number Diff line change
@@ -0,0 +1,267 @@
const generadores = [
generadorDeMonedas, // suman puntos
generadorDeMosquitos, // restan puntos
generadorDeLobos, // termina el juego
generadorDeEscudos, // inmunidad
generadorDeAlas, // doble salto
generadorDeNada
]

object paleta {
const property amarillo = "FFFF00FF"

const property blanco = "FFFFFFFF"
}

class Aviso{
method position() = game.at(22,16)

method text()

method textColor() = paleta.blanco()
}

class AvisoHabilidad inherits Aviso{
method duracion() = 0
}

object avisoDobleSalto inherits AvisoHabilidad{
override method duracion() = dobleSalto.duracion()
override method text() = "TENES DOBLE SALTO POR " + self.duracion().div(1000).toString() + " SEGUNDOS"
}

object avisoInmunidad inherits AvisoHabilidad{
override method duracion() = inmune.duracion()
override method text() = "TENES INMUNIDAD POR " + self.duracion().div(1000).toString() + " SEGUNDOS"
}

object puntos{
method position() = game.at(2,17)

method text() = "PUNTUACION: " + dinosaurio.puntos().toString()

method textColor() = paleta.amarillo()
}

object juegoDeDinosaurio {
method iniciar() {
const musiquita = game.sound("musiquita.mp3")
musiquita.shouldLoop(true)
musiquita.volume(0.1)
game.schedule(500, {musiquita.play()})
keyboard.p().onPressDo({musiquita.pause()})
game.width(45)
game.height(20)
game.addVisual(dinosaurio)
game.addVisual(puntos)
game.boardGround("bosque.png")
game.onTick(1000, "aparecerObjeto", { generadores.anyOne().generar() })
keyboard.up().onPressDo({ dinosaurio.saltar() })
game.whenCollideDo(dinosaurio, { elemento => elemento.teChocoElDino() })
}
}

object normal {
method puntosRestados(n) = n

method puntosSumados(n) = n

method terminarJuego() {
dinosaurio.detenerJuego()
}

method salto() {
if (dinosaurio.position() == game.origin()) dinosaurio.hacerSalto()
}
}

object dobleSalto {
method avisaAlUsuario() {
game.addVisual(avisoDobleSalto)
game.schedule(2500, {game.removeVisual(avisoDobleSalto)})
}

method duracion() = 7000

method puntosRestados(n) = n

method puntosSumados(n) = n

method terminarJuego() {
dinosaurio.detenerJuego()
}

method salto() {
if ((dinosaurio.position() == game.origin()) || (dinosaurio.position() == game.at(0,4)))
dinosaurio.hacerSalto()
}
}

object inmune {
method avisaAlUsuario() {game.addVisual(avisoInmunidad)
game.schedule(2500, {game.removeVisual(avisoInmunidad)})
}

method duracion() = 7000

method puntosRestados(_) = 0

method puntosSumados(n) = n

method terminarJuego() {

}

method salto() {
if (dinosaurio.position() == game.origin()) {
dinosaurio.hacerSalto()
// Si el dino salta mientras que está inmune, pierde la inmunidad.
dinosaurio.estado(normal)
}
}
}

object dinosaurio {
var property position = game.origin()
var property image = "conejito.png"
var property puntos = 0
var property estado = normal

method saltar() {
estado.salto()
game.sound("saltoDino.mp3").play()
}

method hacerSalto() {
self.subir()
game.schedule(600, { self.bajar() })
}

method bajar() {
position = game.origin()
}

method subir() {
position = position.up(4)
}

method sumarPtos(n) {
puntos += estado.puntosSumados(n)
}

method restarPtos(n) {
puntos -= estado.puntosRestados(n)
if(self.puntos()<0)
self.perder()
}

method perder() {
estado.terminarJuego()
}

method detenerJuego() {
game.stop()
}

method cambiarEstadoPorUnosSeg(n, nuevoEstado) {
estado = nuevoEstado
// luego de n milisegundos el estado vuelve a ser normal
game.schedule(n, {estado = normal} )
}
}

class Generador {
method generar()

method apareceYMovete(nuevoObstaculo) {
game.addVisual(nuevoObstaculo)
game.onTick(120, "desplazamiento", { nuevoObstaculo.desplazate() })
}
}

object generadorDeMonedas inherits Generador {
override method generar() {
self.apareceYMovete(new Moneda(image = "moneda.png"))
}
}

object generadorDeMosquitos inherits Generador {
override method generar() {
self.apareceYMovete(new Mosquito(image = "mosquito.png"))
}
}

object generadorDeLobos inherits Generador {
override method generar() {
self.apareceYMovete(new Lobo(image = "lobo1.png"))
}
}

object generadorDeEscudos inherits Generador {
override method generar() {
self.apareceYMovete(new Escudo(image = "escudo1.png"))
}
}

object generadorDeAlas inherits Generador {
override method generar() {
self.apareceYMovete(new Alas(image = "alas3.png"))
}
}

object generadorDeNada {
method generar() {

}
}

class Obstaculo {
var property position = game.at(game.width()-1, self.posY())
var property image
const valores = [0, 4, 8]

method posY() = valores.anyOne()

method teChocoElDino()

method desplazate() {
position = position.left(2)
}
}

class Moneda inherits Obstaculo {
override method teChocoElDino() {
dinosaurio.sumarPtos(8)
game.sound("dinoCoin.mp3").play()
}
}

class Mosquito inherits Obstaculo {
override method teChocoElDino() {
dinosaurio.restarPtos(4)
game.sound("golpeMosquito.mp3").play()
}
}

class Lobo inherits Obstaculo {
override method teChocoElDino() {
dinosaurio.perder()
}
}

class Escudo inherits Obstaculo {
override method teChocoElDino() {
dinosaurio.cambiarEstadoPorUnosSeg(inmune.duracion(), inmune)
inmune.avisaAlUsuario()
game.sound("buff.mp3").play()

}
}

class Alas inherits Obstaculo {
override method teChocoElDino() {
dinosaurio.cambiarEstadoPorUnosSeg(dobleSalto.duracion(), dobleSalto)
dobleSalto.avisaAlUsuario()
game.sound("alasBuff.mp3").play()
}
}
15 changes: 3 additions & 12 deletions main.wpgm
Original file line number Diff line number Diff line change
@@ -1,16 +1,7 @@
import wollok.game.*
import example.*

import pepita.*

program PepitaGame {
game.title("Pepita")
game.height(10)
game.width(10)
game.cellSize(100)

game.addVisual(pepita)

keyboard.w().onPressDo({ pepita.fly(1) })

program DinoGame {
juegoDeDinosaurio.iniciar()
game.start()
}
16 changes: 0 additions & 16 deletions pepita.wlk

This file was deleted.

Loading