AsteroidDefender

Dependencies:   4DGL-uLCD-SE DebounceIn mbed

Committer:
rquinn7
Date:
Tue Oct 20 03:06:14 2015 +0000
Revision:
1:34bb7c386b9f
Parent:
0:bbc2ad180020
Added comments

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rquinn7 0:bbc2ad180020 1 #include <vector>
rquinn7 0:bbc2ad180020 2 #include "mbed.h"
rquinn7 0:bbc2ad180020 3
rquinn7 0:bbc2ad180020 4 struct vec2 {
rquinn7 0:bbc2ad180020 5 double x;
rquinn7 0:bbc2ad180020 6 double y;
rquinn7 0:bbc2ad180020 7 };
rquinn7 0:bbc2ad180020 8
rquinn7 1:34bb7c386b9f 9 //Class for the asteroids falling from the sky
rquinn7 0:bbc2ad180020 10 class Missile{
rquinn7 0:bbc2ad180020 11 private:
rquinn7 0:bbc2ad180020 12
rquinn7 0:bbc2ad180020 13 public:
rquinn7 0:bbc2ad180020 14 bool moved;
rquinn7 0:bbc2ad180020 15 double x_change;
rquinn7 0:bbc2ad180020 16 double y_change;
rquinn7 0:bbc2ad180020 17 vec2 spawn;
rquinn7 0:bbc2ad180020 18 vec2 dest;
rquinn7 0:bbc2ad180020 19 vec2 coord;
rquinn7 0:bbc2ad180020 20 vec2 old_coord;
rquinn7 0:bbc2ad180020 21 vec2 size;
rquinn7 0:bbc2ad180020 22 int steps;
rquinn7 0:bbc2ad180020 23
rquinn7 0:bbc2ad180020 24 vec2 prev_coord;
rquinn7 0:bbc2ad180020 25
rquinn7 1:34bb7c386b9f 26 Missile(vec2 giv_spawn, vec2 giv_dest, int steps_in) : moved(false)
rquinn7 0:bbc2ad180020 27 {
rquinn7 0:bbc2ad180020 28
rquinn7 0:bbc2ad180020 29 spawn = giv_spawn;
rquinn7 0:bbc2ad180020 30 dest = giv_dest;
rquinn7 0:bbc2ad180020 31 coord = giv_spawn;
rquinn7 0:bbc2ad180020 32 old_coord = coord;
rquinn7 0:bbc2ad180020 33 size.x = 6;
rquinn7 0:bbc2ad180020 34 size.y = 6;
rquinn7 0:bbc2ad180020 35 steps = steps_in;
rquinn7 0:bbc2ad180020 36 x_change = (dest.x - spawn.x) / steps;
rquinn7 0:bbc2ad180020 37 y_change = (dest.y - spawn.y) / steps;
rquinn7 0:bbc2ad180020 38
rquinn7 0:bbc2ad180020 39 }
rquinn7 0:bbc2ad180020 40
rquinn7 1:34bb7c386b9f 41 //When called, moves the asteroid towards the bottom
rquinn7 0:bbc2ad180020 42 void move(){
rquinn7 0:bbc2ad180020 43 old_coord = coord;
rquinn7 0:bbc2ad180020 44 moved = true;
rquinn7 0:bbc2ad180020 45 coord.x = coord.x + x_change;
rquinn7 0:bbc2ad180020 46 coord.y = coord.y + y_change;
rquinn7 0:bbc2ad180020 47 }
rquinn7 0:bbc2ad180020 48 };
rquinn7 0:bbc2ad180020 49
rquinn7 1:34bb7c386b9f 50 //Handles all the fired projectiles
rquinn7 0:bbc2ad180020 51 class Projectile{
rquinn7 0:bbc2ad180020 52 private:
rquinn7 0:bbc2ad180020 53
rquinn7 0:bbc2ad180020 54 public:
rquinn7 0:bbc2ad180020 55 bool moved;
rquinn7 0:bbc2ad180020 56 vec2 old_coord;
rquinn7 0:bbc2ad180020 57 vec2 coord;
rquinn7 0:bbc2ad180020 58 vec2 size;
rquinn7 0:bbc2ad180020 59
rquinn7 1:34bb7c386b9f 60 Projectile(vec2 coord_in) : moved(false)
rquinn7 0:bbc2ad180020 61 {
rquinn7 0:bbc2ad180020 62 coord.x = coord_in.x + 3;
rquinn7 0:bbc2ad180020 63 coord.y = coord_in.y + 6;
rquinn7 0:bbc2ad180020 64 old_coord = coord;
rquinn7 0:bbc2ad180020 65 size.x = 3;
rquinn7 0:bbc2ad180020 66 size.y = 3;
rquinn7 0:bbc2ad180020 67 }
rquinn7 0:bbc2ad180020 68
rquinn7 0:bbc2ad180020 69 void move(){
rquinn7 0:bbc2ad180020 70 old_coord = coord;
rquinn7 0:bbc2ad180020 71 moved = true;
rquinn7 0:bbc2ad180020 72 coord.y = coord.y - 4;
rquinn7 0:bbc2ad180020 73 }
rquinn7 0:bbc2ad180020 74 };
rquinn7 0:bbc2ad180020 75
rquinn7 1:34bb7c386b9f 76 //Handles the object the user controls
rquinn7 0:bbc2ad180020 77 class Shooter{
rquinn7 0:bbc2ad180020 78 private:
rquinn7 0:bbc2ad180020 79
rquinn7 0:bbc2ad180020 80 public:
rquinn7 0:bbc2ad180020 81 bool moved;
rquinn7 0:bbc2ad180020 82 vec2 coord;
rquinn7 0:bbc2ad180020 83 vec2 old_coord;
rquinn7 0:bbc2ad180020 84 vec2 size;
rquinn7 0:bbc2ad180020 85
rquinn7 1:34bb7c386b9f 86 Shooter() : moved(false)
rquinn7 0:bbc2ad180020 87 {
rquinn7 0:bbc2ad180020 88 coord.x = 58;
rquinn7 0:bbc2ad180020 89 coord.y = 125;
rquinn7 0:bbc2ad180020 90 old_coord = coord;
rquinn7 0:bbc2ad180020 91 size.x = 11;
rquinn7 0:bbc2ad180020 92 size.y = 5;
rquinn7 0:bbc2ad180020 93 }
rquinn7 0:bbc2ad180020 94 };