Adam Baker 201166301

Dependencies:   mbed Gamepad N5110

Committer:
adambakerwa
Date:
Thu May 09 12:19:36 2019 +0000
Revision:
52:beeffd296ea3
Parent:
50:9fc8edf722a8

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
adambakerwa 50:9fc8edf722a8 1 #ifndef LEVELS_H
adambakerwa 50:9fc8edf722a8 2 #define LEVELS_H
adambakerwa 50:9fc8edf722a8 3
adambakerwa 50:9fc8edf722a8 4 #include "mbed.h"
adambakerwa 50:9fc8edf722a8 5 #include "Gamepad.h"
adambakerwa 50:9fc8edf722a8 6 #include "N5110.h"
adambakerwa 50:9fc8edf722a8 7 /** Pos struct for position of moving platforms and spikes*/
adambakerwa 50:9fc8edf722a8 8 struct Pos {
adambakerwa 50:9fc8edf722a8 9 //////////hoz1//////////
adambakerwa 50:9fc8edf722a8 10 int x; /**< x cord of hoz1 */
adambakerwa 50:9fc8edf722a8 11 int y; /**< y cord of hoz1 */
adambakerwa 50:9fc8edf722a8 12 int d; /**< direction of hoz1 (0 is right, 1 is left) */
adambakerwa 50:9fc8edf722a8 13 int c; /**< counter for hoz1 */
adambakerwa 50:9fc8edf722a8 14 int l; /**< length of hoz1 */
adambakerwa 50:9fc8edf722a8 15 int h; /**< height of hoz1 */
adambakerwa 50:9fc8edf722a8 16 //////////hoz2//////////
adambakerwa 50:9fc8edf722a8 17 int x2; /**< x cord of hoz2 */
adambakerwa 50:9fc8edf722a8 18 int y2; /**< y cord of hoz2 */
adambakerwa 50:9fc8edf722a8 19 int d2; /**< direction of hoz2 (0 is right, 1 is left) */
adambakerwa 50:9fc8edf722a8 20 int c2; /**< counter for hoz2 */
adambakerwa 50:9fc8edf722a8 21 int l2; /**< length of hoz2 */
adambakerwa 50:9fc8edf722a8 22 int h2; /**< length of hoz2 */
adambakerwa 50:9fc8edf722a8 23 //////////ver1//////////
adambakerwa 50:9fc8edf722a8 24 int vx; /**< x cord of ver1 */
adambakerwa 50:9fc8edf722a8 25 int vy; /**< y cord of ver1 */
adambakerwa 50:9fc8edf722a8 26 int vd; /**< direction of ver 1 (0 is down, 1 is up) */
adambakerwa 50:9fc8edf722a8 27 int vc; /**< counter for ver1 */
adambakerwa 50:9fc8edf722a8 28 int vl; /**< length of ver1 */
adambakerwa 50:9fc8edf722a8 29 int vh; /**< height of ver1 */
adambakerwa 50:9fc8edf722a8 30 //////////ver2//////////
adambakerwa 50:9fc8edf722a8 31 int vx2; /**< x cord of ver2 */
adambakerwa 50:9fc8edf722a8 32 int vy2; /**< y cord of ver2 */
adambakerwa 50:9fc8edf722a8 33 int vd2; /**< direction of ver2 (0 is down, 1 is up) */
adambakerwa 50:9fc8edf722a8 34 int vc2; /**< counter for ver2 */
adambakerwa 50:9fc8edf722a8 35 int vl2; /**< length of ver2 */
adambakerwa 50:9fc8edf722a8 36 int vh2; /**< height of ver2 */
adambakerwa 50:9fc8edf722a8 37 //////////spikes//////////
adambakerwa 50:9fc8edf722a8 38 int sx; /**< x cord of spikes */
adambakerwa 50:9fc8edf722a8 39 int sy; /**< y cord of spikes */
adambakerwa 50:9fc8edf722a8 40 int sl; /**< length of spikes */
adambakerwa 50:9fc8edf722a8 41
adambakerwa 50:9fc8edf722a8 42 };
adambakerwa 50:9fc8edf722a8 43
adambakerwa 50:9fc8edf722a8 44
adambakerwa 50:9fc8edf722a8 45 /** Levels Class
adambakerwa 50:9fc8edf722a8 46 * @brief Class for creating and printing levels
adambakerwa 50:9fc8edf722a8 47 * @author Adam P. Baker
adambakerwa 50:9fc8edf722a8 48 * @date 9 May 2019
adambakerwa 50:9fc8edf722a8 49 */
adambakerwa 50:9fc8edf722a8 50 class Levels
adambakerwa 50:9fc8edf722a8 51 {
adambakerwa 50:9fc8edf722a8 52 public:
adambakerwa 50:9fc8edf722a8 53 /** Constructor */
adambakerwa 50:9fc8edf722a8 54 Levels();
adambakerwa 50:9fc8edf722a8 55
adambakerwa 50:9fc8edf722a8 56 /** Deconstructor */
adambakerwa 50:9fc8edf722a8 57 ~Levels();
adambakerwa 50:9fc8edf722a8 58
adambakerwa 50:9fc8edf722a8 59 /** Initialises all variables and pos struct.
adambakerwa 50:9fc8edf722a8 60 *@returns pos struct
adambakerwa 50:9fc8edf722a8 61 */
adambakerwa 50:9fc8edf722a8 62 Pos init(Pos pos);
adambakerwa 50:9fc8edf722a8 63
adambakerwa 50:9fc8edf722a8 64 /** Displays the level Blockhead is on
adambakerwa 50:9fc8edf722a8 65 *@param N5110 class which controlls lcd screen
adambakerwa 50:9fc8edf722a8 66 *@param what level Blockhead is on (int)
adambakerwa 50:9fc8edf722a8 67 *@returns pos struct
adambakerwa 50:9fc8edf722a8 68 */
adambakerwa 50:9fc8edf722a8 69 Pos what_level(N5110 &lcd, int level);
adambakerwa 50:9fc8edf722a8 70
adambakerwa 50:9fc8edf722a8 71 private:
adambakerwa 50:9fc8edf722a8 72
adambakerwa 50:9fc8edf722a8 73 Pos init_hoz1(Pos pos); //initializes data for horizontal moving platform 1
adambakerwa 50:9fc8edf722a8 74 Pos init_hoz2(Pos pos); //initializes data for horizontal moving platform 2
adambakerwa 50:9fc8edf722a8 75 Pos init_ver1(Pos pos); //initializes data for vertical moving platform 1
adambakerwa 50:9fc8edf722a8 76 Pos init_ver2(Pos pos); //initializes data for vertical moving platform 2
adambakerwa 50:9fc8edf722a8 77 Pos init_spike(Pos pos); //initializes data for spikes
adambakerwa 50:9fc8edf722a8 78 void init_counter1(); //initializes counter 1
adambakerwa 50:9fc8edf722a8 79 void init_counter2(); //initializes counter 2
adambakerwa 50:9fc8edf722a8 80
adambakerwa 50:9fc8edf722a8 81 Pos pass_data_hoz1(Pos pos, Pos hoz); //transfer hoz1 into spare variables of original pos struct.
adambakerwa 50:9fc8edf722a8 82 Pos pass_data_hoz2(Pos pos, Pos hoz2); //transfer hoz2 into spare variables of original pos struct.
adambakerwa 50:9fc8edf722a8 83 Pos pass_data_ver1(Pos pos, Pos ver); //transfer ver into spare variables of original pos struct.
adambakerwa 50:9fc8edf722a8 84 Pos pass_data_ver2(Pos pos, Pos ver2); //transfer ver2 into spare variables of original pos struct.
adambakerwa 50:9fc8edf722a8 85
adambakerwa 50:9fc8edf722a8 86 Pos moving_platform_hoz(N5110 &lcd, Pos pos, int x, int y, int w, int h, int dx, int s); //creates a moving platform depending on perameters
adambakerwa 50:9fc8edf722a8 87 Pos moving_platform_ver(N5110 &lcd, Pos pos, int x, int y, int h, int w, int dx, int s); //creates a moving platform depending on perameters
adambakerwa 50:9fc8edf722a8 88 void spike_up(N5110 &lcd, int x, int y); //creates a singular spike
adambakerwa 50:9fc8edf722a8 89 Pos spike_row_up(N5110 &lcd, Pos pos, int x, int y, int n); //creates a row of spikes of n length
adambakerwa 50:9fc8edf722a8 90
adambakerwa 50:9fc8edf722a8 91 void speech_counter1(); //increment counter1
adambakerwa 50:9fc8edf722a8 92 void speech_counter2(); //inrement counter2
adambakerwa 50:9fc8edf722a8 93 void speech_one(N5110 &lcd); //print string 'why hello there' word by word
adambakerwa 50:9fc8edf722a8 94 void speech_two(N5110 &lcd); //print string 'you must be ' word by word
adambakerwa 50:9fc8edf722a8 95 void speech_three(N5110 &lcd); //print string 'the new guy' word by word
adambakerwa 50:9fc8edf722a8 96 void speech_four(N5110 &lcd); //print string 'use joy stick to move-go right' word by word
adambakerwa 50:9fc8edf722a8 97 void speech_five(N5110 &lcd); //print string 'shame what' word by word
adambakerwa 50:9fc8edf722a8 98 void speech_six(N5110 &lcd); //print string 'happened to' word by word
adambakerwa 50:9fc8edf722a8 99 void speech_seven(N5110 &lcd); //print string 'the last lad...' word by word
adambakerwa 50:9fc8edf722a8 100 void speech_eight(N5110 &lcd); //print string 'press button a to jump' word by word
adambakerwa 50:9fc8edf722a8 101 void speech_nine(N5110 &lcd); //print string 'I was just' word by word
adambakerwa 50:9fc8edf722a8 102 void speech_ten(N5110 &lcd); //print string 'starting to' word by word
adambakerwa 50:9fc8edf722a8 103 void speech_elleven(N5110 &lcd); //print string 'like him' word by word
adambakerwa 50:9fc8edf722a8 104 void speech_twelve(N5110 &lcd); //print string 'as well!' word by word
adambakerwa 50:9fc8edf722a8 105 void speech_thirteen(N5110 &lcd); //print string 'Here's an idea..' word by word
adambakerwa 50:9fc8edf722a8 106 void speech_forteen(N5110 &lcd); //print string 'try a wall jump' word by word
adambakerwa 50:9fc8edf722a8 107
adambakerwa 50:9fc8edf722a8 108 Pos level_one(N5110 &lcd); //prints level one
adambakerwa 50:9fc8edf722a8 109 Pos init_level_one(Pos pos);
adambakerwa 50:9fc8edf722a8 110 void speech_level_one(N5110 &lcd);
adambakerwa 50:9fc8edf722a8 111
adambakerwa 50:9fc8edf722a8 112 Pos level_two(N5110 &lcd); //prints level two
adambakerwa 50:9fc8edf722a8 113 void speech_level_two(N5110 &lcd);
adambakerwa 50:9fc8edf722a8 114 Pos init_level_two(Pos pos);
adambakerwa 50:9fc8edf722a8 115
adambakerwa 50:9fc8edf722a8 116 Pos level_three(N5110 &lcd); //prints level three
adambakerwa 50:9fc8edf722a8 117 void speech_level_three(N5110 &lcd);
adambakerwa 50:9fc8edf722a8 118 Pos init_level_three(Pos pos);
adambakerwa 50:9fc8edf722a8 119
adambakerwa 50:9fc8edf722a8 120 Pos level_four(N5110 &lcd); //prints level four
adambakerwa 50:9fc8edf722a8 121 Pos init_level_four(Pos pos);
adambakerwa 50:9fc8edf722a8 122
adambakerwa 50:9fc8edf722a8 123 Pos level_five(N5110 &lcd); //prints level five
adambakerwa 50:9fc8edf722a8 124 Pos init_level_five(Pos pos);
adambakerwa 50:9fc8edf722a8 125
adambakerwa 50:9fc8edf722a8 126 Pos level_six(N5110 &lcd); //prints level six
adambakerwa 50:9fc8edf722a8 127 Pos init_level_six(Pos pos);
adambakerwa 50:9fc8edf722a8 128
adambakerwa 50:9fc8edf722a8 129 Pos level_seven(N5110 &lcd); //prints level seven
adambakerwa 50:9fc8edf722a8 130 Pos init_level_seven(Pos pos);
adambakerwa 50:9fc8edf722a8 131
adambakerwa 50:9fc8edf722a8 132 Pos level_eight(N5110 &lcd); //prints level eight
adambakerwa 50:9fc8edf722a8 133 Pos init_level_eight(Pos pos);
adambakerwa 50:9fc8edf722a8 134
adambakerwa 50:9fc8edf722a8 135 Pos level_nine(N5110 &lcd); //prints level nine
adambakerwa 50:9fc8edf722a8 136 Pos init_level_nine(Pos pos);
adambakerwa 50:9fc8edf722a8 137
adambakerwa 50:9fc8edf722a8 138 Pos level_ten(N5110 &lcd); //prints level ten
adambakerwa 50:9fc8edf722a8 139
adambakerwa 50:9fc8edf722a8 140 Pos level_zero(N5110 &lcd); //prints level ten
adambakerwa 50:9fc8edf722a8 141
adambakerwa 50:9fc8edf722a8 142 Pos _pos; //struct containing position and direction of moving platforms
adambakerwa 50:9fc8edf722a8 143 Pos _hoz1;
adambakerwa 50:9fc8edf722a8 144 Pos _hoz2;
adambakerwa 50:9fc8edf722a8 145 Pos _ver1;
adambakerwa 50:9fc8edf722a8 146 Pos _ver2;
adambakerwa 50:9fc8edf722a8 147
adambakerwa 50:9fc8edf722a8 148 int _counter1; //counters for displaying speech
adambakerwa 50:9fc8edf722a8 149 int _counter2;
adambakerwa 50:9fc8edf722a8 150 };
adambakerwa 50:9fc8edf722a8 151
adambakerwa 50:9fc8edf722a8 152 #endif