Skip to content

Frogger - Trabajo Práctico Final - 22.07 - Programación I - Ingeniería Electrónica - Instituto Tecnológico Buenos Aires (ITBA)

License

Notifications You must be signed in to change notification settings

prograG2/tpfinal-frogger

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Frogger

Trabajo Práctico Final de 22.07 - Programación I, curso de 1er año de Ingeniería Electrónica del Instituto Tecnológico Buenos Aires (ITBA).

Table of Contents
  1. About The Project
  2. Features
  3. Getting Started
  4. Usage
  5. Contact
  6. Acknowledgments

About The Project



Este proyecto se corresponde con el trabajo práctico final del curso 22.07 - Programación I, del primer año de Ingeniería Electrónica del Instituto Tecnológico Buenos Aires (ITBA).

  • Fecha de cursada: 2021 Q1
  • Fecha de presentación: febrero de 2022

La consigna fue implementar el clásico juego Frogger en lenguaje C para ejecutarse tanto en una PC con interfaz gráfica como en una Raspberry Pi con interfaz de display matricial y joystick.

(back to top)

Features

A continuación se mencionan algunas de las característimas destacables de la implementación, tanto las comunes para ambas plataformas como las específicas de cada una.

Generales

  • Menú: el juego cuenta con un sistema de menú, caracterizable en 3 partes:

    • Menú principal: al que se llega al inicar ejecutar el juego. Desde el mismo, se puede:
      • Pasar al ingreso de nombre del jugador para posteriormente iniciar la partida
      • Seleccionar entre tres dificultades: fácil, normal, difícil
      • Ver el ranking de jugadores
      • Ver los créditos
      • Salir del juego
    • Menú de pausa: permite reiniciar la partida, continuarla, o volver al menú principal.
    • Menú de game over: permite reiniciar la partida o volver al menú principal.
  • Audio: se cuenta con cinco músicas según la ubicación en la que uno esté dentro del juego, además de diversos efectos de sonidos, tanto en el menú como en la partida en sí

  • Ranking: cada jugador se irá registrando en el mismo cada vez que pierda una partida y haya logrado un puntaje mayor a 0. Si el jugador ya estaba en el ranking, solo se actualizará en él si lo superara. De no ingresar un nombre, se le asignará el de PLAYER. Se lo puede visualizar desde el menú principal

  • Créditos: dentro del menú principal, se puede acceder a la sección de cŕeditos

PC

  • Menú:

    • Menú de pausa: muestra el nombre del jugador, su puntaje actual, y su puntaje máximo si le corresponde.
    • Menú de game over: muestra el nombre del jugador, el puntaje que obtuvo, y si logró batir su récord.
  • Entidades en la partida:

    • Autos:
      • 3 tipos de autos
      • 2 tipos de camiones
      • Diferentes sentidos de circulación con distinta velocidad.
      • En función de la dificultad flat, algunos carriles tendrán velocidad variable en el tiempo.
    • Tortugas:
      • 2 carriles dedicados
      • Se pueden presentar en paquetes de 1 hasta 3 tortugas juntas.
      • Timing aleatorio (dentro de un margen) para sumergir y emerger.
      • Animación de movimiento
      • Animación que anticipa el sumergimiento
    • Troncos:
      • 3 carriles dedicados
      • Distintas velocidades
    • Coin: spawnea en alguna de las metas libres. Da mayor puntaje y tiempo extra.
      • Timing aleatorio (dentro de un margen) para spawnear y despawnear
      • Animación de rotación
      • Animación que anticipa despawneo
  • Dificultad incremental al avanzar en el juego

    • Se reduce el tiempo del nivel
  • Otros:

    • Animación de caída al agua
    • Sprite de muerte (atropellado o choque contra un muro de la zona de llegada)
    • Easter egg en la partida

RPi

  • Entidades en la partida:

    • Autos:
      • 2 tipos de autos
      • 5 carriles dedicados
      • Único sentido de circulación. La velocidad es constante en todos los vehículos, pero aumenta con la dificultad y el nivel.
    • Troncos:
      • 5 carriles dedicados
      • La velocidad es constante en todos los troncos, pero aumenta con la dificultad y el nivel.
  • Dificultad incremental al avanzar en el juego

    • Se reduce el tiempo del nivel
    • Aumenta la velocidad de entidades
  • Otros:

    • Sonidos de efectos

(back to top)

Getting Started

Prerequisites

Para ambas plataformas, será necesario contar con las herramientas gcc y make, además de estar corriendo un Unix-like OS.

PC

  • allegro5
    • Arch
      sudo pacman -Syu
      sudo pacman -S allegro
    • Ubuntu 18.04+
      sudo apt-get update
      sudo add-apt-repository ppa:allegro/5.2
      sudo apt-get install liballegro*5.2 liballegro*5-dev

RPi

  • Hardware
    Se requiere una Raspberry Pi 3, un display matricial de 16x16 y joystick.
  • Software
    Se requiere contar con todas las bibliotecas para el display, sonido y joystick. En caso de que aquellas que se presentan en el repositorio no funcionen, estas deberán ser reemplazadas por las que correspondan.

Installation

  1. Clonar el repositorio
    git clone https://github.com/prograG2/tpfinal-frogger.git
  2. Entrar al directorio root
    cd tpfinal-frogger
  3. Compilar el proyecto y crear el ejecutable
    make

(back to top)

Usage

Corriendo el juego

El ejecutable del juego se encuentra en /bin, el mismo directorio donde se encontrará oportunamente el ranking de jugadores.

Para ejecutarlo:

  • Desde /bin
     ./frogger_PC
    ó
     ./frogger_RPI
  • Desde directorio root
     make run

    Correr make run en el ítem 3 de la instalacion compila, crea el ejecutable y lo ejecuta


Controles

PC

  • F1: bajar volumen (hasta 0%)

  • F2: subir volumen (hasta 100%)

  • 1: mutear volumen

  • 2: desmutear volumen

  • X button (ventana): cerrar

  • En menús:

    • Flecha arriba: subir opción
    • Flecha abajo: bajar opción
    • Enter: seleccionar opción
  • En ranking y créditos:

    • Enter: volver al menú principal
  • Poniendo nombre:

    • Letras A-Z: ingresar letra
    • Backspace: borrar letra
    • Escape: volver al menú principal
    • Enter: confirmar el nombre y pasa al juego
  • Partida:

    • Flechas: movimientos correspondientes para la rana
    • Enter: menu de pausa
    • 8: easter egg on
    • 9: easter egg off

RPi

  • En menús:

    • UP: subir
    • DOWN: bajar
    • Enter: confirmar
  • En ranking y créditos:

    • Enter: ir a menú principal
  • Ingresando nombre:

    • UP: siguiente letra
    • DOWN: letra anterior
    • RIGHT: confirmar letra
    • Enter: confirmar nombre (jugar)
  • Partida:

    • Flechas: movimiento de la rana
    • Enter: pausa

(back to top)

Contact

AGRIPPINO, Franco - fagrippino@itba.edu.ar
ÁLVAREZ, Matías Ezequiel - matalvarez@itba.edu.ar
CASTRO, Tomás Agustín - tomacastro@itba.edu.ar
HEIR, Alejandro Nahuel - aheir@itba.edu.ar

Project Link: https://github.com/prograG2/tpfinal-frogger

(back to top)

Acknowledgments

  • Cátedra de 22.07 - Programación I
    • JACOBY, Daniel Andrés
    • MAGLIOLA, Nicolás
    • VACATELLO, Pablo Daniel
    • Ayudantes
  • Allegro
  • algif5
  • Simple SDL2 Audio
  • Valgrind
  • Música
    • Menú principal: VipeorofVic, Dark Souls III - Main Theme - 8 Bit Revision
    • Ranking: Jaxxtir, GTA San Andreas Theme - 8 Bit Remix
    • Créditos: 8 Bit Universe, Curb Your Enthusiasm Theme - 8 Bit
    • Partida:
    • Menú de pausa: Retro Game Audio, Dark Souls - Firelink Shrine (NES/ Famicom + VRC6 audio)
    • Menú de game over: MB Music, Game Over (8-Bit Music)

(back to top)

About

Frogger - Trabajo Práctico Final - 22.07 - Programación I - Ingeniería Electrónica - Instituto Tecnológico Buenos Aires (ITBA)

Resources

License

Stars

Watchers

Forks