The final version of the game has physics accurate reflection mechanics
Demo Video that covers most of the functionality
Key | Action |
---|---|
KEY[0] | Reset |
KEY[1] | Continue |
Key | Action |
---|---|
W | Forward |
A | Rotate Left |
S | Backward |
D | Rotate Right |
SPACE | Shoot |
Key | Action |
---|---|
↑ | Forward |
← | Rotate Left |
↓ | Backward |
→ | Rotate Right |
/ | Shoot |
- This is a PvP top down shooter. First one to score 10 points wins
- You gain 1 point if you hit an enemy with your missile
- You get an extra "Style Point" if you kill an enemy by bouncing the missile of a wall. In total, you earn 2 points if you hit an enemy with bounced
- A missile can bounce off the wall 3 times. You can also manually adjust this by increasing or decreasing the value at
define BOUNCE_LIMIT
in player.h header file - If you inflict self damage, you lose a point where lowest point you can get is 0
- All of NIOS II Eclipse projects are stored in
final_project/software
folder. Eclipse is weird where changing the project root makes it fail to reopen the project, so you might have to import the project when you are trying it on a new computer. The projects you will need to import are
📁 final project
└─ 📁 workspace <- Select this folder when launching Eclipse
└─ 📁 software
└─ 📁 usb_kb <- Import this folder as a project
└─ 📁 usb_kb_bsp <- and this
Please ignore lab61 project files that is hidden in various places (e.g. lab61_app
folder in final_project/software
)
- It may take a while to first run the program as it calculates sin and cosine from
$[0, 360)$ degrees and stores it into an array for optimizations sake
- 16 different player direction
- Pixel-accurate map collision system
- Physics-accurate missile reflection system
- Pseudo-random player color accent picker
- Character animation
- Map-aware character shadow
- UI animation
- Death animation(explosion)
- Scoreboard system
- Win-lose system
- Simple main menu system
... and probably some more that I can't think on top of my head right now.