ELEC2645 (2019/20) / Mbed 2 deprecated ELEC2645_Project_el18jkeo

Dependencies:   mbed

Committer:
josh_ohara
Date:
Wed May 13 19:27:46 2020 +0000
Revision:
22:3e978b1d7958
Parent:
21:970807533b10
Child:
23:aa86e32b6a74
Level progression programmed. Need to figure out how to delete objects when a new level commences.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
josh_ohara 6:5bea67cc96f9 1 #ifndef SPACEINVADERENGINE_H
josh_ohara 6:5bea67cc96f9 2 #define SPACEINVADERENGINE_H
josh_ohara 6:5bea67cc96f9 3
josh_ohara 6:5bea67cc96f9 4 #include "mbed.h"
josh_ohara 6:5bea67cc96f9 5 #include "N5110.h"
josh_ohara 6:5bea67cc96f9 6 #include "Gamepad.h"
josh_ohara 6:5bea67cc96f9 7 #include "Ship.h"
josh_ohara 12:be491ab6e742 8 #include "Armada.h"
josh_ohara 15:dde4ce4bf7fe 9 #include "Cover.h"
josh_ohara 11:c174d84e4866 10 #include <vector>
josh_ohara 6:5bea67cc96f9 11
josh_ohara 6:5bea67cc96f9 12 #define BORDER 2
josh_ohara 6:5bea67cc96f9 13
josh_ohara 6:5bea67cc96f9 14 class SpaceInvaderEngine
josh_ohara 6:5bea67cc96f9 15 {
josh_ohara 6:5bea67cc96f9 16
josh_ohara 6:5bea67cc96f9 17 public:
josh_ohara 6:5bea67cc96f9 18 SpaceInvaderEngine();
josh_ohara 8:86cb9a9f8a73 19 ~SpaceInvaderEngine();
josh_ohara 15:dde4ce4bf7fe 20 void init(int ship_height, int ship_width, int alien_size, int no_aliens, int armada_column_size, int armada_row_size, int cover_y, int cover1_x, int cover2_x, int cover3_x, int no_rocks);
josh_ohara 6:5bea67cc96f9 21 void read_input(Gamepad &pad);
josh_ohara 16:987f72d9bb8f 22 void update(Gamepad &pad, N5110 &lcd, int counter);
josh_ohara 8:86cb9a9f8a73 23 void render(N5110 &lcd);
josh_ohara 11:c174d84e4866 24 void shoot_bullet();
josh_ohara 14:e88bcf5c0887 25 void get_ship_pos();
josh_ohara 14:e88bcf5c0887 26 void ship_bullet_alien_collision(Gamepad &pad, N5110 &lcd);
josh_ohara 15:dde4ce4bf7fe 27 void ship_bullet_cover1_collision(Gamepad &pad, N5110 &lcd);
josh_ohara 15:dde4ce4bf7fe 28 void ship_bullet_cover2_collision(Gamepad &pad, N5110 &lcd);
josh_ohara 15:dde4ce4bf7fe 29 void ship_bullet_cover3_collision(Gamepad &pad, N5110 &lcd);
josh_ohara 20:0b6f1cfc5be6 30 void alien_bullet_ship_collision(Gamepad &pad, N5110 &lcd);
josh_ohara 20:0b6f1cfc5be6 31 void alien_bullet_cover3_collision(Gamepad &pad, N5110 &lcd);
josh_ohara 20:0b6f1cfc5be6 32 void alien_bullet_cover1_collision(Gamepad &pad, N5110 &lcd);
josh_ohara 20:0b6f1cfc5be6 33 void alien_bullet_cover2_collision(Gamepad &pad, N5110 &lcd);
josh_ohara 21:970807533b10 34 void alien_ship_collision(Gamepad &pad, N5110 &lcd);
josh_ohara 21:970807533b10 35 void alien_cover1_collision(Gamepad &pad, N5110 &lcd);
josh_ohara 21:970807533b10 36 void alien_cover2_collision(Gamepad &pad, N5110 &lcd);
josh_ohara 21:970807533b10 37 void alien_cover3_collision(Gamepad &pad, N5110 &lcd);
josh_ohara 22:3e978b1d7958 38 bool get_armada_life();
josh_ohara 22:3e978b1d7958 39 bool get_ship_life();
josh_ohara 14:e88bcf5c0887 40
josh_ohara 6:5bea67cc96f9 41 private:
josh_ohara 6:5bea67cc96f9 42
josh_ohara 12:be491ab6e742 43 Armada A1;
josh_ohara 6:5bea67cc96f9 44 Ship S1;
josh_ohara 11:c174d84e4866 45 BulletS BS1;
josh_ohara 15:dde4ce4bf7fe 46 Cover C1;
josh_ohara 15:dde4ce4bf7fe 47 Cover C2;
josh_ohara 15:dde4ce4bf7fe 48 Cover C3;
josh_ohara 6:5bea67cc96f9 49
josh_ohara 6:5bea67cc96f9 50 int S1_height;
josh_ohara 6:5bea67cc96f9 51 int S1_width;
josh_ohara 9:8e695df3cc36 52 int A1_size;
josh_ohara 12:be491ab6e742 53 int N;
josh_ohara 12:be491ab6e742 54 int CS;
josh_ohara 12:be491ab6e742 55 int RS;
josh_ohara 6:5bea67cc96f9 56
josh_ohara 9:8e695df3cc36 57 int A1y;
josh_ohara 14:e88bcf5c0887 58 int S1x;
josh_ohara 14:e88bcf5c0887 59 int S1y;
josh_ohara 15:dde4ce4bf7fe 60 int Cy;
josh_ohara 15:dde4ce4bf7fe 61 int C1x;
josh_ohara 15:dde4ce4bf7fe 62 int C2x;
josh_ohara 15:dde4ce4bf7fe 63 int C3x;
josh_ohara 15:dde4ce4bf7fe 64 int NR;
josh_ohara 6:5bea67cc96f9 65
josh_ohara 12:be491ab6e742 66
josh_ohara 6:5bea67cc96f9 67 Direction D;
josh_ohara 6:5bea67cc96f9 68 float Mag;
josh_ohara 6:5bea67cc96f9 69
josh_ohara 6:5bea67cc96f9 70 };
josh_ohara 6:5bea67cc96f9 71
josh_ohara 6:5bea67cc96f9 72 #endif