ELEC2645 (2018/19) / Mbed 2 deprecated el17aio

Dependencies:   mbed

Committer:
ikenna1
Date:
Tue May 07 10:01:34 2019 +0000
Revision:
40:90c7a893d513
Parent:
39:7824f9080f59
Child:
41:e1fa36c0492e
Add Orion ship weapons ; Gives a weapon that tracks the movements of enemy ship to the Orion

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