Space Racers! is a Space Invaders clone for the MBED. The goal is to avoid the oncoming alien onslaught by shooting them with your missiles. The aliens traverse the screen getting lower and lower until they either reach the bottom of the screen or shoot your spaceship player 3 times. To win the game, the user has to shoot all 9 of the enemy aliens. The controls can be handled either with the navigation switch or the Adafruit Bluetooth Connect app Control Pad on your mobile device. Left and Right arrows are used to move the player, the up arrow is used to shoot at the aliens.

Dependencies:   4DGL-uLCD-SE PinDetect mbed wave_player

Committer:
mdargie6
Date:
Wed May 02 18:49:04 2018 +0000
Revision:
0:aeb7a12718ed
okay

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mdargie6 0:aeb7a12718ed 1 #include "uLCD_4DGL.h"
mdargie6 0:aeb7a12718ed 2 #include "mbed.h"
mdargie6 0:aeb7a12718ed 3 extern uLCD_4DGL uLCD;
mdargie6 0:aeb7a12718ed 4
mdargie6 0:aeb7a12718ed 5 class Alien
mdargie6 0:aeb7a12718ed 6 {
mdargie6 0:aeb7a12718ed 7 public:
mdargie6 0:aeb7a12718ed 8 int oldx, oldy, x, y;
mdargie6 0:aeb7a12718ed 9 bool alive;
mdargie6 0:aeb7a12718ed 10 Alien() {}
mdargie6 0:aeb7a12718ed 11 Alien(int xx, int yy) { //starting position
mdargie6 0:aeb7a12718ed 12 oldx = xx;
mdargie6 0:aeb7a12718ed 13 oldy = yy;
mdargie6 0:aeb7a12718ed 14 x = xx;
mdargie6 0:aeb7a12718ed 15 y = yy;
mdargie6 0:aeb7a12718ed 16 alive = true;
mdargie6 0:aeb7a12718ed 17 }
mdargie6 0:aeb7a12718ed 18
mdargie6 0:aeb7a12718ed 19 void draw() {
mdargie6 0:aeb7a12718ed 20
mdargie6 0:aeb7a12718ed 21 // if (x != oldx) {
mdargie6 0:aeb7a12718ed 22 // uLCD.filled_circle(x,y,4,BLACK);
mdargie6 0:aeb7a12718ed 23 // uLCD.filled_rectangle(x-5, y+6,x-3, y+4,BLACK);
mdargie6 0:aeb7a12718ed 24 // uLCD.filled_rectangle(x+3,y+6,x+5,y+4,BLACK);
mdargie6 0:aeb7a12718ed 25 // uLCD.filled_circle(x-2,y-1,1.5,BLACK);
mdargie6 0:aeb7a12718ed 26 // uLCD.filled_circle(x+2,y-1,1.5,BLACK);
mdargie6 0:aeb7a12718ed 27 // }
mdargie6 0:aeb7a12718ed 28 // uLCD.triangle( x-3, y+3 ,x,y, x+3, y+3, GREEN);
mdargie6 0:aeb7a12718ed 29 uLCD.filled_circle(x,y,4,GREEN);
mdargie6 0:aeb7a12718ed 30 uLCD.filled_rectangle(x-5, y+6,x-3, y+4,GREEN);
mdargie6 0:aeb7a12718ed 31 uLCD.filled_rectangle(x+3,y+6,x+5,y+4,GREEN);
mdargie6 0:aeb7a12718ed 32 uLCD.filled_circle(x-2,y-1,1.5,RED);
mdargie6 0:aeb7a12718ed 33 uLCD.filled_circle(x+2,y-1,1.5,RED);
mdargie6 0:aeb7a12718ed 34 }
mdargie6 0:aeb7a12718ed 35
mdargie6 0:aeb7a12718ed 36 void erase() {
mdargie6 0:aeb7a12718ed 37 // uLCD.triangle( x-3, y+3 ,x,y, x+3, y+3, GREEN);
mdargie6 0:aeb7a12718ed 38 uLCD.filled_circle(x,y,4,BLACK);
mdargie6 0:aeb7a12718ed 39 uLCD.filled_rectangle(x-5, y+6,x-3, y+4,BLACK);
mdargie6 0:aeb7a12718ed 40 uLCD.filled_rectangle(x+3,y+6,x+5,y+4,BLACK);
mdargie6 0:aeb7a12718ed 41 uLCD.filled_circle(x-2,y-1,1.5,BLACK);
mdargie6 0:aeb7a12718ed 42 uLCD.filled_circle(x+2,y-1,1.5,BLACK);
mdargie6 0:aeb7a12718ed 43
mdargie6 0:aeb7a12718ed 44 }
mdargie6 0:aeb7a12718ed 45 };