
AsteroidDefender
Dependencies: 4DGL-uLCD-SE DebounceIn mbed
game.h@1:34bb7c386b9f, 2015-10-20 (annotated)
- 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?
User | Revision | Line number | New 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 | }; |