Skip to content
This repository has been archived by the owner on Nov 1, 2023. It is now read-only.
/ matrix-shooter Public archive

Matrix Shooter project for Robotics course.

License

Notifications You must be signed in to change notification settings

ady4k/matrix-shooter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 

Repository files navigation

Matrix Shooter - V1.0

About:

Matrix Shooter is a 2D top-down shooter game designed on an Arduino Uno board using an 8x8 LED Matrix. The point of the game is for the player to shoot down as many enemies as they can, infinitely, going for the highest score possible while also avoiding fire from them. The player can use powerups to help themselves even the fight out against the enemies. Game becomes more difficult as the levels increase but a separate difficulty can also be selected.

Components:

  • Arduino Uno Board
  • Breadboard
  • Small breadboard
  • Joystick
  • LCD Display
  • 8x8 LED Matrix
  • MAX7219 Driver
  • 1 ceramic capacitor of 104 pF
  • 1 electrolytic capacitor of 10 μF
  • 1 10k Ohm rezistor - Driver
  • 1 220 Ohm rezistor - LCD
  • a lot of wires

How to use:

1. Navigating the menus:

Turn the joystick up / down to navigate through menus.
Press the joystick to enter in the menu.
When in the About menu, press the joystick again to exit.
Adjust selected setting by turning the joystick left or right.

2. Playing the game:

Left / Right - move the player
Press - shoot a projectile
Hold - use stored powerup

3. Ending the game:

The game automatically ends when the player runs out of lives.

In-game information:

The following information will be displayed on the LCD Display:

  • HP - Health Points, amount of lives
  • Lvl - current level
  • Pts - current amount of points
  • powerup icon - shows as X if there is no powerup stored or a specific icon depending on the powerup

Types of powerups:

  1. One Life Up - when atleast one life is lost, a one life up powerup can spawn, increasing the current lives by one. Cannot be stored.
  2. Bomb - using the bomb wipes out the entire screen of enemies and projectiles
  3. Invicibility - makes the player invincible for a couple of seconds
  4. Auto Shoot - game shoots for the player increasing efficiency

Tehnical implementation:

Game functions on a per-second scan to spawn new enemies, powerups and to move the enemies. Projectiles are timed independently from the scan in a set speed based on the selected game difficulty.

Showcase video: Matrix Shooter - V1.0

Pictures of the setup: Pictures Album

circuit setup

Known Bugs:

  • About menu line shows a down arrow even though it's only one total line
  • Menu doesn't update when game starts but will update at points / level / life alteration - possible interference or something
  • LCD flickering annoyingly while in-game
  • Pressing the button while on auto shoot instantly uses the stored powerup
  • Bomb powerup is badly designed
  • Enemies sometimes get stuck - no idea why
  • Enemies move and shoot extremely random

To Do List:

  • Hi-Scores Menu
  • Proper Player Name
  • Proper Game Over
  • Proper Game Intro
  • Sound
  • A way to force exit the game instead of hard reseting
  • More randomized enemy shooting, they seem to synchronize a lot
  • Arduino controlled LCD backlight
  • Refactor and split main file into more headers
  • Code comments

About

Matrix Shooter project for Robotics course.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages