ELEC2645 (2018/19) / Mbed 2 deprecated el17aio

Dependencies:   mbed

Committer:
ikenna1
Date:
Fri May 03 09:41:53 2019 +0000
Revision:
35:3341f2bd0408
Parent:
34:6d0786582d81
Child:
36:c25417f0d150
Fix all collision issues; ; Collision was formerly done in separately for each case now two dedicated function will be used to check if two sprites collided

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 30:711d722f3cef 30
ikenna1 9:241a1a7d8527 31
ikenna1 9:241a1a7d8527 32 int ship_xpos;
ikenna1 9:241a1a7d8527 33 int ship_ypos;
ikenna1 9:241a1a7d8527 34 int ship_width;
ikenna1 25:faba9eb44514 35 int ship_height;
ikenna1 25:faba9eb44514 36 //*** note: add ship width and ship heirgth in place of 6 and 9 to generalize arrays after they are finished
ikenna1 10:c33d7593a275 37
ikenna1 2:66a4e5d7a7cd 38 private:
ikenna1 35:3341f2bd0408 39
ikenna1 30:711d722f3cef 40 void score(int points);
ikenna1 35:3341f2bd0408 41 bool check_collision(int xpos1, int ypos1,int width1,int height1,int xpos2, int ypos2,int width2,int height2);
ikenna1 35:3341f2bd0408 42 bool check_collision1(int xpos1,int width1,int xpos2,int width2);
ikenna1 35:3341f2bd0408 43 void test();
ikenna1 35:3341f2bd0408 44 void seeker_ship_collision(Gamepad &pad);
ikenna1 35:3341f2bd0408 45 void shooter_ship_collision(Gamepad &pad);
ikenna1 35:3341f2bd0408 46 void shooterw_ship_collision(Gamepad &pad);
ikenna1 35:3341f2bd0408 47 void kestrelw_seeker_collision(Gamepad &pad);
ikenna1 35:3341f2bd0408 48 void imperionw_seeker_collision(Gamepad &pad);
ikenna1 35:3341f2bd0408 49 void kestrelw_shooter_collision(Gamepad &pad);
ikenna1 35:3341f2bd0408 50 void imperionw_shooter_collision(Gamepad &pad);
ikenna1 4:740e14ebbc97 51
ikenna1 4:740e14ebbc97 52 // Variables
ikenna1 8:87a845b8575e 53 Ship _ship;
ikenna1 9:241a1a7d8527 54 Weapons _weapons;
ikenna1 9:241a1a7d8527 55 Menu _menu;
ikenna1 15:009ccc07bb57 56 Enemy _enemy;
ikenna1 17:e65a9f981834 57 Health _health;
ikenna1 4:740e14ebbc97 58 float _xjoystick;
ikenna1 4:740e14ebbc97 59 float _yjoystick;
ikenna1 9:241a1a7d8527 60 Direction _d;
ikenna1 10:c33d7593a275 61 int _ycursor;
ikenna1 21:628fb703188f 62 int _shipno;
ikenna1 30:711d722f3cef 63 int _score;
ikenna1 34:6d0786582d81 64 int _shno;
ikenna1 34:6d0786582d81 65 Vector2D _shooter1_pos;
ikenna1 34:6d0786582d81 66 Vector2D _shooter2_pos;
ikenna1 34:6d0786582d81 67 Vector2D _shooter3_pos;
ikenna1 34:6d0786582d81 68 Vector2D _coloc;
ikenna1 25:faba9eb44514 69
ikenna1 2:66a4e5d7a7cd 70
ikenna1 2:66a4e5d7a7cd 71 };
ikenna1 25:faba9eb44514 72 /************STUFF TO FIX******************************
ikenna1 28:6319e928f0aa 73 **** add sound effects for sjield braking
ikenna1 28:6319e928f0aa 74 **** add passive shield regeneration
ikenna1 29:4c7b16b5b6df 75 **** work on score increase
ikenna1 29:4c7b16b5b6df 76 **** add title screen with name
ikenna1 29:4c7b16b5b6df 77 **** make it so back asks you if you are sure and ststes that you will lose all progress
ikenna1 29:4c7b16b5b6df 78 **** think of level system
ikenna1 29:4c7b16b5b6df 79 **** orion should send out pulses that stun enemy ships and absorb thier shields(use draw line)
ikenna1 29:4c7b16b5b6df 80 **** scale shields properly
ikenna1 29:4c7b16b5b6df 81 **** fix the border issue(i.e the ships clip through healthbar)
ikenna1 30:711d722f3cef 82 **** make it so enemy ship spawning is random use srand
ikenna1 34:6d0786582d81 83 **** add in options for lcd brightness and contrast
ikenna1 34:6d0786582d81 84 **** add in cheats
ikenna1 34:6d0786582d81 85 ****
ikenna1 25:faba9eb44514 86 */
ikenna1 35:3341f2bd0408 87 #endif
ikenna1 35:3341f2bd0408 88 /*
ikenna1 35:3341f2bd0408 89 bool RosenEngine::seeker_ship_collision()
ikenna1 35:3341f2bd0408 90 {
ikenna1 35:3341f2bd0408 91 // Vector2D ship_pos = _ship.get_pos();
ikenna1 35:3341f2bd0408 92 Vector2D seeker_pos = _enemy.get_seekerpos();
ikenna1 35:3341f2bd0408 93 int seeker_xpos = seeker_pos.x, seeker_ypos = seeker_pos.y;
ikenna1 35:3341f2bd0408 94 bool sscol;
ikenna1 35:3341f2bd0408 95 sscol = check_collision(seeker_xpos,seeker_ypos,9,6,ship_xpos,ship_ypos,9,6);
ikenna1 35:3341f2bd0408 96 return sscol;
ikenna1 35:3341f2bd0408 97
ikenna1 35:3341f2bd0408 98 }
ikenna1 35:3341f2bd0408 99 */