Meteor defense project

Dependencies:   N5110 mbed

Committer:
jasper0712
Date:
Thu May 04 16:55:26 2017 +0000
Revision:
50:082feedcdd22
converted library to folder

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jasper0712 50:082feedcdd22 1 #ifndef GUI_H
jasper0712 50:082feedcdd22 2 #define GUI_H
jasper0712 50:082feedcdd22 3
jasper0712 50:082feedcdd22 4 #include "mbed.h"
jasper0712 50:082feedcdd22 5 #include "N5110.h"
jasper0712 50:082feedcdd22 6 #include "Gamepad.h"
jasper0712 50:082feedcdd22 7 #include "Weapon.h"
jasper0712 50:082feedcdd22 8 #include "Spawn.h"
jasper0712 50:082feedcdd22 9
jasper0712 50:082feedcdd22 10 //position of cursor
jasper0712 50:082feedcdd22 11 struct Cursors {
jasper0712 50:082feedcdd22 12 int number_y;
jasper0712 50:082feedcdd22 13 int number_x;
jasper0712 50:082feedcdd22 14 };
jasper0712 50:082feedcdd22 15
jasper0712 50:082feedcdd22 16 //struct to store the ugprade data
jasper0712 50:082feedcdd22 17 struct Data {
jasper0712 50:082feedcdd22 18 int up;
jasper0712 50:082feedcdd22 19 int up1;
jasper0712 50:082feedcdd22 20 int u1p;
jasper0712 50:082feedcdd22 21 int u1p1;
jasper0712 50:082feedcdd22 22 };
jasper0712 50:082feedcdd22 23
jasper0712 50:082feedcdd22 24 /** GUI Class
jasper0712 50:082feedcdd22 25 @brief User interface class for the game
jasper0712 50:082feedcdd22 26 @author JianWei Lee
jasper0712 50:082feedcdd22 27 @date April 2017
jasper0712 50:082feedcdd22 28 */
jasper0712 50:082feedcdd22 29 class GUI
jasper0712 50:082feedcdd22 30 {
jasper0712 50:082feedcdd22 31
jasper0712 50:082feedcdd22 32
jasper0712 50:082feedcdd22 33 public:
jasper0712 50:082feedcdd22 34 GUI();
jasper0712 50:082feedcdd22 35 ~GUI();
jasper0712 50:082feedcdd22 36
jasper0712 50:082feedcdd22 37 /**Starting Menu Strings
jasper0712 50:082feedcdd22 38 *
jasper0712 50:082feedcdd22 39 *Few strings to be printed on the lcd before starting the game
jasper0712 50:082feedcdd22 40 */
jasper0712 50:082feedcdd22 41 void startingMenu(N5110 &lcd);
jasper0712 50:082feedcdd22 42
jasper0712 50:082feedcdd22 43
jasper0712 50:082feedcdd22 44 /**Weapon Upgrades
jasper0712 50:082feedcdd22 45 *
jasper0712 50:082feedcdd22 46 *@brief 2 points will be given for upgrades\n
jasper0712 50:082feedcdd22 47 *@brief Start button to enter the upgrade page\n
jasper0712 50:082feedcdd22 48 *@brief Press button A to select\n
jasper0712 50:082feedcdd22 49 *@brief After spending 2 points, press Start button again to continue game\n
jasper0712 50:082feedcdd22 50 *@param a - laser damage
jasper0712 50:082feedcdd22 51 *@param b - bomb damage
jasper0712 50:082feedcdd22 52 *@param c - bomb radius
jasper0712 50:082feedcdd22 53 *@param d - bomb cooldown
jasper0712 50:082feedcdd22 54 *@param e - drone damage
jasper0712 50:082feedcdd22 55 *@param f - drone range
jasper0712 50:082feedcdd22 56 *@param g - shield capacity
jasper0712 50:082feedcdd22 57 *@param h - sheild regenerative rate
jasper0712 50:082feedcdd22 58 *@param i - cannon damage
jasper0712 50:082feedcdd22 59 *@param j - cannon capacity
jasper0712 50:082feedcdd22 60 *@param k - cannon regenerative rate
jasper0712 50:082feedcdd22 61 */
jasper0712 50:082feedcdd22 62 void upgrades(int a, int b, int c, int d, int e, int f, int g, int h, int i, int j, int k, Gamepad &pad, N5110 &lcd);
jasper0712 50:082feedcdd22 63
jasper0712 50:082feedcdd22 64 /**Prevent pad double click
jasper0712 50:082feedcdd22 65 *
jasper0712 50:082feedcdd22 66 *@brief Double clicking always happens on the pad and it breaks the game \n
jasper0712 50:082feedcdd22 67 *@brief Clear off the event flag for unintended clicks
jasper0712 50:082feedcdd22 68 */
jasper0712 50:082feedcdd22 69 void preventDoubleClick(Gamepad &pad);
jasper0712 50:082feedcdd22 70
jasper0712 50:082feedcdd22 71 /**Get Upgrades Data
jasper0712 50:082feedcdd22 72 *
jasper0712 50:082feedcdd22 73 *@brief The weapon that is upgraded will be saved in the struct Data using numbers \n
jasper0712 50:082feedcdd22 74 *@brief Return weapon's number and variable's number.
jasper0712 50:082feedcdd22 75 */
jasper0712 50:082feedcdd22 76 Data get_data();
jasper0712 50:082feedcdd22 77
jasper0712 50:082feedcdd22 78 int upgrading_flag;
jasper0712 50:082feedcdd22 79 int upgrading1_flag;
jasper0712 50:082feedcdd22 80 int saveTheData_flag;
jasper0712 50:082feedcdd22 81
jasper0712 50:082feedcdd22 82
jasper0712 50:082feedcdd22 83 private:
jasper0712 50:082feedcdd22 84
jasper0712 50:082feedcdd22 85 int cc;
jasper0712 50:082feedcdd22 86 int options;
jasper0712 50:082feedcdd22 87 char pointsRemaining[10];
jasper0712 50:082feedcdd22 88 char upgrade1[12];
jasper0712 50:082feedcdd22 89 char upgrade2[12];
jasper0712 50:082feedcdd22 90 char upgrade3[12];
jasper0712 50:082feedcdd22 91
jasper0712 50:082feedcdd22 92
jasper0712 50:082feedcdd22 93
jasper0712 50:082feedcdd22 94 int pointsUpgrade;
jasper0712 50:082feedcdd22 95 int pointsGiven;
jasper0712 50:082feedcdd22 96 int upgradePicked;
jasper0712 50:082feedcdd22 97 int upgradePicked1;
jasper0712 50:082feedcdd22 98 int upgrade1Picked;
jasper0712 50:082feedcdd22 99 int upgrade1Picked1;
jasper0712 50:082feedcdd22 100
jasper0712 50:082feedcdd22 101 //function to move the cursor up and down
jasper0712 50:082feedcdd22 102 Cursors cursor(Gamepad &pad);
jasper0712 50:082feedcdd22 103 int cursor_y;
jasper0712 50:082feedcdd22 104 int cursor_y1;
jasper0712 50:082feedcdd22 105 //simply draw a square cursor depends on the cursor Y position
jasper0712 50:082feedcdd22 106 void drawCursor(int Cy, N5110 &lcd);
jasper0712 50:082feedcdd22 107
jasper0712 50:082feedcdd22 108 //contains printstring in all the page
jasper0712 50:082feedcdd22 109 void main_UpgradesPage(N5110 &lcd);
jasper0712 50:082feedcdd22 110 void laser_UpgradesPage(int laserDamage, N5110 &lcd);
jasper0712 50:082feedcdd22 111 void bomb_UpgradesPage(int bombDamage, int bombR, int bombCooldown, N5110 &lcd);
jasper0712 50:082feedcdd22 112 void drone_UpgradesPage(int droneDamage, int droneRange, N5110 &lcd);
jasper0712 50:082feedcdd22 113 void shield_UpgradesPage(int shieldCapacity, int shieldRegenRate, N5110 &lcd);
jasper0712 50:082feedcdd22 114 void cannon_UpgradesPage(int cannonDamage, int cannonCapacity, int cannonRegenRate, N5110 &lcd);
jasper0712 50:082feedcdd22 115
jasper0712 50:082feedcdd22 116 //save the upgrade data for later use in Weapon library
jasper0712 50:082feedcdd22 117 //and manage the upgrade points
jasper0712 50:082feedcdd22 118 void upgradesData(Gamepad &pad);
jasper0712 50:082feedcdd22 119
jasper0712 50:082feedcdd22 120 //this to check the buttons pressed when upgrading weapon and play tone to notify player
jasper0712 50:082feedcdd22 121 void pad_events(Gamepad &pad);
jasper0712 50:082feedcdd22 122
jasper0712 50:082feedcdd22 123 };
jasper0712 50:082feedcdd22 124
jasper0712 50:082feedcdd22 125 #endif