ELEC2645 (2018/19) / Mbed 2 deprecated el17aio

Dependencies:   mbed

Committer:
ikenna1
Date:
Fri May 03 18:56:06 2019 +0000
Revision:
36:c25417f0d150
Parent:
35:3341f2bd0408
Child:
37:8d8c8cce0bc7
Add health to enemies.; enemies no longer die in a single hit and now have health like the player which like the players health is handled in the health folder. Also fixed issue where game would run in menu background.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ikenna1 2:66a4e5d7a7cd 1 #ifndef ROSENENGINE_H
ikenna1 2:66a4e5d7a7cd 2 #define ROSENENGINE_H
ikenna1 2:66a4e5d7a7cd 3
ikenna1 2:66a4e5d7a7cd 4 #include "mbed.h"
ikenna1 2:66a4e5d7a7cd 5 #include "N5110.h"
ikenna1 2:66a4e5d7a7cd 6 #include "Gamepad.h"
ikenna1 7:ed5870cfb3e0 7 #include "Ship.h"
ikenna1 9:241a1a7d8527 8 #include "Weapons.h"
ikenna1 9:241a1a7d8527 9 #include "Menu.h"
ikenna1 15:009ccc07bb57 10 #include "Enemy.h"
ikenna1 17:e65a9f981834 11 #include "Health.h"
ikenna1 2:66a4e5d7a7cd 12
ikenna1 2:66a4e5d7a7cd 13 class RosenEngine
ikenna1 2:66a4e5d7a7cd 14 {
ikenna1 2:66a4e5d7a7cd 15
ikenna1 2:66a4e5d7a7cd 16 public:
ikenna1 2:66a4e5d7a7cd 17 RosenEngine();
ikenna1 2:66a4e5d7a7cd 18 ~RosenEngine();
ikenna1 3:f9cd1a38d5c6 19
ikenna1 8:87a845b8575e 20 void init(int ship_width,int ship_height,int ship_speed,int ship_xpos,int ship_ypos);
ikenna1 27:f99249e727fd 21 void reset();
ikenna1 2:66a4e5d7a7cd 22 void read_input(Gamepad &pad);
ikenna1 2:66a4e5d7a7cd 23 void update(Gamepad &pad);
ikenna1 14:88ca5b1a111a 24 void draw(N5110 &lcd, Gamepad &pad);
ikenna1 9:241a1a7d8527 25 void get_pos();
ikenna1 10:c33d7593a275 26 void title(N5110 &lcd);
ikenna1 13:e114d362186d 27 int get_ycursor();
ikenna1 21:628fb703188f 28 int get_shipno();
ikenna1 12:47578eb9ea73 29 void ship_select(N5110 &lcd);
ikenna1 36:c25417f0d150 30 void check_health();
ikenna1 30:711d722f3cef 31
ikenna1 9:241a1a7d8527 32
ikenna1 9:241a1a7d8527 33 int ship_xpos;
ikenna1 9:241a1a7d8527 34 int ship_ypos;
ikenna1 9:241a1a7d8527 35 int ship_width;
ikenna1 25:faba9eb44514 36 int ship_height;
ikenna1 25:faba9eb44514 37 //*** note: add ship width and ship heirgth in place of 6 and 9 to generalize arrays after they are finished
ikenna1 10:c33d7593a275 38
ikenna1 2:66a4e5d7a7cd 39 private:
ikenna1 35:3341f2bd0408 40
ikenna1 30:711d722f3cef 41 void score(int points);
ikenna1 35:3341f2bd0408 42 bool check_collision(int xpos1, int ypos1,int width1,int height1,int xpos2, int ypos2,int width2,int height2);
ikenna1 35:3341f2bd0408 43 bool check_collision1(int xpos1,int width1,int xpos2,int width2);
ikenna1 35:3341f2bd0408 44 void test();
ikenna1 35:3341f2bd0408 45 void seeker_ship_collision(Gamepad &pad);
ikenna1 35:3341f2bd0408 46 void shooter_ship_collision(Gamepad &pad);
ikenna1 35:3341f2bd0408 47 void shooterw_ship_collision(Gamepad &pad);
ikenna1 35:3341f2bd0408 48 void kestrelw_seeker_collision(Gamepad &pad);
ikenna1 35:3341f2bd0408 49 void imperionw_seeker_collision(Gamepad &pad);
ikenna1 35:3341f2bd0408 50 void kestrelw_shooter_collision(Gamepad &pad);
ikenna1 35:3341f2bd0408 51 void imperionw_shooter_collision(Gamepad &pad);
ikenna1 4:740e14ebbc97 52
ikenna1 36:c25417f0d150 53
ikenna1 4:740e14ebbc97 54 // Variables
ikenna1 8:87a845b8575e 55 Ship _ship;
ikenna1 9:241a1a7d8527 56 Weapons _weapons;
ikenna1 9:241a1a7d8527 57 Menu _menu;
ikenna1 15:009ccc07bb57 58 Enemy _enemy;
ikenna1 17:e65a9f981834 59 Health _health;
ikenna1 4:740e14ebbc97 60 float _xjoystick;
ikenna1 4:740e14ebbc97 61 float _yjoystick;
ikenna1 9:241a1a7d8527 62 Direction _d;
ikenna1 10:c33d7593a275 63 int _ycursor;
ikenna1 21:628fb703188f 64 int _shipno;
ikenna1 30:711d722f3cef 65 int _score;
ikenna1 34:6d0786582d81 66 int _shno;
ikenna1 34:6d0786582d81 67 Vector2D _shooter1_pos;
ikenna1 34:6d0786582d81 68 Vector2D _shooter2_pos;
ikenna1 34:6d0786582d81 69 Vector2D _shooter3_pos;
ikenna1 34:6d0786582d81 70 Vector2D _coloc;
ikenna1 36:c25417f0d150 71 bool _dead;
ikenna1 25:faba9eb44514 72
ikenna1 2:66a4e5d7a7cd 73
ikenna1 2:66a4e5d7a7cd 74 };
ikenna1 25:faba9eb44514 75 /************STUFF TO FIX******************************
ikenna1 28:6319e928f0aa 76 **** add sound effects for sjield braking
ikenna1 28:6319e928f0aa 77 **** add passive shield regeneration
ikenna1 29:4c7b16b5b6df 78 **** work on score increase
ikenna1 29:4c7b16b5b6df 79 **** add title screen with name
ikenna1 29:4c7b16b5b6df 80 **** make it so back asks you if you are sure and ststes that you will lose all progress
ikenna1 29:4c7b16b5b6df 81 **** think of level system
ikenna1 29:4c7b16b5b6df 82 **** orion should send out pulses that stun enemy ships and absorb thier shields(use draw line)
ikenna1 29:4c7b16b5b6df 83 **** scale shields properly
ikenna1 29:4c7b16b5b6df 84 **** fix the border issue(i.e the ships clip through healthbar)
ikenna1 30:711d722f3cef 85 **** make it so enemy ship spawning is random use srand
ikenna1 34:6d0786582d81 86 **** add in options for lcd brightness and contrast
ikenna1 34:6d0786582d81 87 **** add in cheats
ikenna1 34:6d0786582d81 88 ****
ikenna1 25:faba9eb44514 89 */
ikenna1 35:3341f2bd0408 90 #endif
ikenna1 35:3341f2bd0408 91 /*
ikenna1 36:c25417f0d150 92 changes not commited
ikenna1 36:c25417f0d150 93 *Fix game playing in background
ikenna1 36:c25417f0d150 94 *Change seeker damage to 175
ikenna1 36:c25417f0d150 95 *make seeker health 5
ikenna1 36:c25417f0d150 96 * implement a viewing system for enemy ships
ikenna1 36:c25417f0d150 97 * enemy comes from below very fast
ikenna1 36:c25417f0d150 98 * if you hold a button shields come up in front but not sides
ikenna1 36:c25417f0d150 99 *
ikenna1 36:c25417f0d150 100 *
ikenna1 35:3341f2bd0408 101 */