Instructions In this assignment, you will be implementing Space Invaders in Mode 0. If you are not familiar with the game, search it online, and you will find several videos and explanations. You are free to extend the game in any way you want, but your implementation must have the following characteristics of the original game:
● Enemies move to the side until they (or the colony) hits a wall
● When they hit the wall, they move down a bit, then back to the other side
● At least five rows of enemies
● At least three different enemy types, each with a unique appearance
● At least one type of enemy has animations
● Enemies shoot bullets, which take a life from the player if they hit
● Player shoots bullets, which destroy enemies if they hit
● Player’s lives are displayed during the game
Your game must have the following additional characteristics:
● Coded entirely in Mode 0
● Meaningful comments throughout the code
● The following states: Start, Game, Pause, Win, and Lose
● Sprites used for the enemies and player ● Transparency in the sprite images ● The following controls:
○ Left – Moves the player left
○ Right – Moves the player right
○ A–Fire
○ Start – Pause the game
You do not have to (but are welcome to) implement the following characteristics of the original game.
● Barriers between the player and enemies
● Enemies move as a single block when the edge of the block hits the wall
● A bonus enemy occasionally appears at the top
● Only the bottom row of enemies shoot bullets
● The game speeds up over time
Tips ● Start early. This is the hardest (and last) homework of the class. If you realize a problem early, come to office hours
● If you don’t feel artistic, find the sprites for this game somewhere online, and copy them onto your spritesheet in Usenti
● Get the game working in the following order:
1. Make the state backgrounds in Usenti (very basic, for now)
2. Get the state machine working in-game
3. Make the player sprite in Usenti (very basic, for now)
4. Get the player moving in-game
5. Make the enemy sprites in Usenti (very basic, for now)
6. Get the enemies appearing in the rows in-game
7. Get the enemies moving down at the sides, then back the other way
8. Make the bullet sprite in Usenti (very basic)
9. Get the player shooting bullets
10.Have the bullets destroy enemies
11.When all enemies are destroyed, win the game
12.When the enemies reach the player, lose the game
13.Make the lives sprite in Usenti (very basic, for now)
14.Get the lives displaying in-game
15.Get the enemies shooting
16.Have the enemy bullet hitting the player remove a life