ELEC2645 (2018/19) / Mbed 2 deprecated el17lw

Dependencies:   mbed

Committer:
lewisgw
Date:
Sun Mar 24 19:22:50 2019 +0000
Revision:
9:fff2009f826e
Parent:
8:5327418f823a
Child:
10:8bf3713d9e9c
Same functionality as last commit, now properly formatted and organised into a menu class to run the game engine and to implement a menu in the future

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lewisgw 2:16ae940b0aee 1 #include "Skateboarder.h"
lewisgw 2:16ae940b0aee 2
lewisgw 9:fff2009f826e 3 int skate_right[17][10] = {
lewisgw 9:fff2009f826e 4 { 0,0,0,1,1,1,0,0,0,0 },
lewisgw 9:fff2009f826e 5 { 0,0,0,1,1,1,1,0,0,0 },
lewisgw 9:fff2009f826e 6 { 0,1,1,1,1,1,1,0,0,0 },
lewisgw 9:fff2009f826e 7 { 0,0,0,1,0,1,1,0,0,0 },
lewisgw 9:fff2009f826e 8 { 0,0,0,1,1,1,0,0,0,0 },
lewisgw 9:fff2009f826e 9 { 0,0,0,1,1,0,0,0,0,0 },
lewisgw 9:fff2009f826e 10 { 0,0,0,1,1,0,0,0,0,0 },
lewisgw 9:fff2009f826e 11 { 0,1,1,1,1,1,1,1,0,0 },
lewisgw 9:fff2009f826e 12 { 1,1,0,1,1,0,0,1,1,0 },
lewisgw 9:fff2009f826e 13 { 1,0,0,1,1,0,0,0,0,0 },
lewisgw 9:fff2009f826e 14 { 0,0,0,1,1,0,0,0,0,0 },
lewisgw 9:fff2009f826e 15 { 0,0,0,1,1,0,0,0,0,0 },
lewisgw 9:fff2009f826e 16 { 0,0,0,1,0,1,0,0,0,0 },
lewisgw 9:fff2009f826e 17 { 0,0,0,1,0,0,1,0,0,0 },
lewisgw 9:fff2009f826e 18 { 1,0,0,1,0,0,0,1,0,1 },
lewisgw 9:fff2009f826e 19 { 0,1,1,1,1,1,1,1,1,0 },
lewisgw 9:fff2009f826e 20 { 0,0,1,0,0,0,0,1,0,0 },
lewisgw 4:ce4eea1c2a28 21 };
lewisgw 4:ce4eea1c2a28 22
lewisgw 9:fff2009f826e 23 int skate_left[17][10] = {
lewisgw 9:fff2009f826e 24 { 0,0,0,0,1,1,1,0,0,0 },
lewisgw 9:fff2009f826e 25 { 0,0,0,1,1,1,1,0,0,0 },
lewisgw 9:fff2009f826e 26 { 0,0,0,1,1,1,1,1,1,0 },
lewisgw 9:fff2009f826e 27 { 0,0,0,1,1,0,1,0,0,0 },
lewisgw 9:fff2009f826e 28 { 0,0,0,0,1,1,1,0,0,0 },
lewisgw 9:fff2009f826e 29 { 0,0,0,0,0,1,1,0,0,0 },
lewisgw 9:fff2009f826e 30 { 0,0,0,0,0,1,1,1,0,0 },
lewisgw 9:fff2009f826e 31 { 0,1,1,1,1,1,1,1,0,0 },
lewisgw 9:fff2009f826e 32 { 0,0,0,1,1,1,1,1,1,0 },
lewisgw 9:fff2009f826e 33 { 0,0,0,0,1,1,0,0,1,0 },
lewisgw 9:fff2009f826e 34 { 0,0,0,0,1,1,0,0,0,1 },
lewisgw 9:fff2009f826e 35 { 0,0,0,0,1,1,0,0,0,0 },
lewisgw 9:fff2009f826e 36 { 0,0,0,1,0,1,0,0,0,0 },
lewisgw 9:fff2009f826e 37 { 0,0,1,0,0,1,0,0,0,0 },
lewisgw 9:fff2009f826e 38 { 1,1,0,0,0,1,0,0,0,1 },
lewisgw 9:fff2009f826e 39 { 0,1,1,1,1,1,1,1,1,0 },
lewisgw 9:fff2009f826e 40 { 0,0,0,1,0,0,0,0,1,0 },
lewisgw 3:28a3c118e071 41 };
lewisgw 3:28a3c118e071 42
lewisgw 9:fff2009f826e 43 int skate_stand_left[17][10] = {
lewisgw 9:fff2009f826e 44 { 0,0,0,0,1,1,0,0,0,0 },
lewisgw 9:fff2009f826e 45 { 0,0,0,1,1,1,1,0,0,0 },
lewisgw 9:fff2009f826e 46 { 0,0,0,1,1,1,1,1,1,0 },
lewisgw 9:fff2009f826e 47 { 0,0,0,1,0,0,1,0,0,0 },
lewisgw 9:fff2009f826e 48 { 0,0,0,1,1,1,1,0,0,0 },
lewisgw 9:fff2009f826e 49 { 0,0,0,0,1,1,0,0,0,0 },
lewisgw 9:fff2009f826e 50 { 0,0,0,1,1,1,1,0,0,0 },
lewisgw 9:fff2009f826e 51 { 0,0,1,1,1,1,0,1,0,0 },
lewisgw 9:fff2009f826e 52 { 1,1,0,1,1,1,0,1,0,0 },
lewisgw 9:fff2009f826e 53 { 0,0,0,1,1,1,0,0,0,0 },
lewisgw 9:fff2009f826e 54 { 0,0,1,1,1,1,0,0,0,0 },
lewisgw 9:fff2009f826e 55 { 1,0,1,0,0,1,0,0,0,0 },
lewisgw 9:fff2009f826e 56 { 1,1,0,0,0,1,0,0,0,0 },
lewisgw 9:fff2009f826e 57 { 0,1,0,0,0,1,0,0,0,0 },
lewisgw 9:fff2009f826e 58 { 1,0,1,0,0,1,0,0,0,0 },
lewisgw 9:fff2009f826e 59 { 0,0,0,1,0,1,0,0,0,0 },
lewisgw 9:fff2009f826e 60 { 0,0,1,0,1,1,1,0,0,0 },
lewisgw 3:28a3c118e071 61 };
lewisgw 3:28a3c118e071 62
lewisgw 9:fff2009f826e 63 int skate_stand_right[17][10] = {
lewisgw 9:fff2009f826e 64 { 0,0,0,1,1,0,0,0,0,0 },
lewisgw 9:fff2009f826e 65 { 0,0,1,1,1,1,0,0,0,0 },
lewisgw 9:fff2009f826e 66 { 1,1,1,1,1,1,0,0,0,0 },
lewisgw 9:fff2009f826e 67 { 0,0,1,0,0,1,0,0,0,0 },
lewisgw 9:fff2009f826e 68 { 0,0,1,1,1,1,0,0,0,0 },
lewisgw 9:fff2009f826e 69 { 0,0,0,1,1,0,0,0,0,0 },
lewisgw 9:fff2009f826e 70 { 0,0,1,1,1,1,0,0,0,0 },
lewisgw 9:fff2009f826e 71 { 0,1,1,1,1,0,1,0,0,0 },
lewisgw 9:fff2009f826e 72 { 1,0,1,1,1,0,0,1,0,0 },
lewisgw 9:fff2009f826e 73 { 1,0,1,1,1,0,0,0,0,0 },
lewisgw 9:fff2009f826e 74 { 0,0,1,1,1,1,1,0,0,0 },
lewisgw 9:fff2009f826e 75 { 0,0,1,0,0,0,1,0,1,0 },
lewisgw 9:fff2009f826e 76 { 0,0,1,0,0,0,1,1,0,0 },
lewisgw 9:fff2009f826e 77 { 0,0,1,0,0,0,1,0,1,0 },
lewisgw 9:fff2009f826e 78 { 0,0,1,0,0,1,0,0,0,0 },
lewisgw 9:fff2009f826e 79 { 0,0,1,0,1,0,0,0,0,0 },
lewisgw 9:fff2009f826e 80 { 0,1,1,1,0,1,0,0,0,0 },
lewisgw 3:28a3c118e071 81 };
lewisgw 3:28a3c118e071 82
lewisgw 9:fff2009f826e 83 int skate_duck_right[17][10] = {
lewisgw 9:fff2009f826e 84 { 0,0,0,0,0,0,0,0,0,0 },
lewisgw 9:fff2009f826e 85 { 0,0,0,0,0,0,0,0,0,0 },
lewisgw 9:fff2009f826e 86 { 0,0,0,0,0,0,0,0,0,0 },
lewisgw 9:fff2009f826e 87 { 0,0,0,0,0,0,0,0,0,0 },
lewisgw 9:fff2009f826e 88 { 0,0,0,0,1,1,0,0,0,0 },
lewisgw 9:fff2009f826e 89 { 0,0,0,1,1,1,1,0,0,0 },
lewisgw 9:fff2009f826e 90 { 0,1,1,1,1,1,1,0,0,0 },
lewisgw 9:fff2009f826e 91 { 0,0,0,1,0,0,1,0,0,0 },
lewisgw 9:fff2009f826e 92 { 0,0,0,0,1,1,0,0,0,0 },
lewisgw 9:fff2009f826e 93 { 0,0,1,1,1,1,1,1,0,0 },
lewisgw 9:fff2009f826e 94 { 0,1,0,1,1,1,1,0,1,1 },
lewisgw 9:fff2009f826e 95 { 1,0,0,1,1,1,1,0,0,0 },
lewisgw 9:fff2009f826e 96 { 0,0,0,1,1,1,1,0,0,0 },
lewisgw 9:fff2009f826e 97 { 0,0,1,1,0,0,1,1,0,0 },
lewisgw 9:fff2009f826e 98 { 1,0,1,1,0,0,1,1,0,1 },
lewisgw 9:fff2009f826e 99 { 0,1,1,1,1,1,1,1,1,0 },
lewisgw 9:fff2009f826e 100 { 0,0,1,0,0,0,0,1,0,0 },
lewisgw 4:ce4eea1c2a28 101 };
lewisgw 4:ce4eea1c2a28 102
lewisgw 4:ce4eea1c2a28 103 int skate_duck_left[17][10] = {
lewisgw 9:fff2009f826e 104 { 0,0,0,0,0,0,0,0,0,0 },
lewisgw 9:fff2009f826e 105 { 0,0,0,0,0,0,0,0,0,0 },
lewisgw 9:fff2009f826e 106 { 0,0,0,0,0,0,0,0,0,0 },
lewisgw 9:fff2009f826e 107 { 0,0,0,0,0,0,0,0,0,0 },
lewisgw 9:fff2009f826e 108 { 0,0,0,0,1,1,0,0,0,0 },
lewisgw 9:fff2009f826e 109 { 0,0,0,1,1,1,1,0,0,0 },
lewisgw 9:fff2009f826e 110 { 0,0,0,1,1,1,1,1,1,0 },
lewisgw 9:fff2009f826e 111 { 0,0,0,1,0,0,1,0,0,0 },
lewisgw 9:fff2009f826e 112 { 0,0,0,0,1,1,0,0,0,0 },
lewisgw 9:fff2009f826e 113 { 0,0,1,1,1,1,1,1,0,0 },
lewisgw 9:fff2009f826e 114 { 1,1,0,1,1,1,1,0,1,0 },
lewisgw 9:fff2009f826e 115 { 0,0,0,1,1,1,1,0,0,1 },
lewisgw 9:fff2009f826e 116 { 0,0,0,1,1,1,1,0,0,0 },
lewisgw 9:fff2009f826e 117 { 0,0,1,1,0,0,1,1,0,0 },
lewisgw 9:fff2009f826e 118 { 1,0,1,1,0,0,1,1,0,1 },
lewisgw 9:fff2009f826e 119 { 0,1,1,1,1,1,1,1,1,0 },
lewisgw 9:fff2009f826e 120 { 0,0,1,0,0,0,0,1,0,0 },
lewisgw 3:28a3c118e071 121 };
lewisgw 3:28a3c118e071 122
lewisgw 9:fff2009f826e 123 Skateboarder::Skateboarder() {}
lewisgw 2:16ae940b0aee 124
lewisgw 9:fff2009f826e 125 Skateboarder::~Skateboarder() {}
lewisgw 2:16ae940b0aee 126
lewisgw 9:fff2009f826e 127 void Skateboarder::set_x_position_and_sprite(
lewisgw 9:fff2009f826e 128 float joy_x,
lewisgw 9:fff2009f826e 129 int moving_counter,
lewisgw 9:fff2009f826e 130 Skate_Direction direction,
lewisgw 9:fff2009f826e 131 float joy_y) {
lewisgw 9:fff2009f826e 132 _skate_direction = direction;
lewisgw 9:fff2009f826e 133 _moving_counter = moving_counter;
lewisgw 9:fff2009f826e 134 process_x_variables(joy_x);
lewisgw 9:fff2009f826e 135 _x = 40 + 0.4*_moving_counter;
lewisgw 9:fff2009f826e 136 check_duck(joy_y);
lewisgw 9:fff2009f826e 137 }
lewisgw 9:fff2009f826e 138
lewisgw 9:fff2009f826e 139 void Skateboarder::process_x_variables(float joy_x) {
lewisgw 9:fff2009f826e 140 if (joy_x > 0.1) {
lewisgw 2:16ae940b0aee 141 _moving_counter = _moving_counter++;
lewisgw 2:16ae940b0aee 142 _skate_direction = Right;
lewisgw 2:16ae940b0aee 143 _sprite_value = Skate_right;
lewisgw 9:fff2009f826e 144 } else if (joy_x < -0.1) {
lewisgw 2:16ae940b0aee 145 _moving_counter = _moving_counter--;
lewisgw 2:16ae940b0aee 146 _skate_direction = Left;
lewisgw 2:16ae940b0aee 147 _sprite_value = Skate_left;
lewisgw 9:fff2009f826e 148 } else if (_skate_direction == Left) {
lewisgw 2:16ae940b0aee 149 _sprite_value = Stand_left;
lewisgw 9:fff2009f826e 150 } else {
lewisgw 2:16ae940b0aee 151 _sprite_value = Stand_right;
lewisgw 9:fff2009f826e 152 }
lewisgw 9:fff2009f826e 153 }
lewisgw 9:fff2009f826e 154
lewisgw 9:fff2009f826e 155 void Skateboarder::check_duck(float joy_y) {
lewisgw 9:fff2009f826e 156 if (joy_y < -0.1 && _skate_direction == Right) {
lewisgw 4:ce4eea1c2a28 157 _sprite_value = Skate_duck_right;
lewisgw 9:fff2009f826e 158 } else if (joy_y < -0.1 && _skate_direction == Left) {
lewisgw 4:ce4eea1c2a28 159 _sprite_value = Skate_duck_left;
lewisgw 9:fff2009f826e 160 }
lewisgw 9:fff2009f826e 161 }
lewisgw 9:fff2009f826e 162
lewisgw 2:16ae940b0aee 163
lewisgw 3:28a3c118e071 164 void Skateboarder::set_y_position(bool jump, int jump_counter, int level) {
lewisgw 9:fff2009f826e 165 _jump_counter = jump_counter;
lewisgw 9:fff2009f826e 166 _level = level;
lewisgw 9:fff2009f826e 167 if (jump && _jump_counter < 10) _jump_counter = 40;
lewisgw 9:fff2009f826e 168 if (_jump_counter !=0) _jump_counter--;
lewisgw 9:fff2009f826e 169 _y = 23 - 0.5*_jump_counter;
lewisgw 7:bbc2b75c1418 170 /*
lewisgw 3:28a3c118e071 171 if(_level == 0){
lewisgw 3:28a3c118e071 172 _y = 23 - 0.5*_jump_counter;
lewisgw 4:ce4eea1c2a28 173 }
lewisgw 3:28a3c118e071 174 else {
lewisgw 4:ce4eea1c2a28 175 _y = 5 - 0.25*_jump_counter;
lewisgw 3:28a3c118e071 176 }
lewisgw 7:bbc2b75c1418 177 */
lewisgw 9:fff2009f826e 178 }
lewisgw 2:16ae940b0aee 179
lewisgw 2:16ae940b0aee 180
lewisgw 9:fff2009f826e 181 int Skateboarder::get_x_position() {
lewisgw 9:fff2009f826e 182 return _x;
lewisgw 9:fff2009f826e 183 }
lewisgw 2:16ae940b0aee 184
lewisgw 9:fff2009f826e 185 int Skateboarder::get_moving_counter() {
lewisgw 9:fff2009f826e 186 return _moving_counter;
lewisgw 9:fff2009f826e 187 }
lewisgw 2:16ae940b0aee 188
lewisgw 9:fff2009f826e 189 int Skateboarder::get_y_position() {
lewisgw 9:fff2009f826e 190 return _y;
lewisgw 9:fff2009f826e 191 }
lewisgw 2:16ae940b0aee 192
lewisgw 9:fff2009f826e 193 int Skateboarder::get_jump_counter() {
lewisgw 9:fff2009f826e 194 return _jump_counter;
lewisgw 9:fff2009f826e 195 }
lewisgw 3:28a3c118e071 196
lewisgw 9:fff2009f826e 197 Skate_Direction Skateboarder::get_direction() {
lewisgw 9:fff2009f826e 198 return _skate_direction;
lewisgw 9:fff2009f826e 199 }
lewisgw 2:16ae940b0aee 200
lewisgw 9:fff2009f826e 201 Sprite_value Skateboarder::get_sprite_value() {
lewisgw 9:fff2009f826e 202 return _sprite_value;
lewisgw 9:fff2009f826e 203 }
lewisgw 3:28a3c118e071 204
lewisgw 9:fff2009f826e 205 int * Skateboarder::get_sprite(Sprite_value sprite) {
lewisgw 9:fff2009f826e 206 if (sprite == Skate_right) {
lewisgw 3:28a3c118e071 207 return *skate_right;
lewisgw 9:fff2009f826e 208 } else if (sprite == Skate_left) {
lewisgw 3:28a3c118e071 209 return *skate_left;
lewisgw 9:fff2009f826e 210 } else if (sprite == Stand_left) {
lewisgw 4:ce4eea1c2a28 211 return *skate_stand_left;
lewisgw 9:fff2009f826e 212 } else if (sprite == Skate_duck_right) {
lewisgw 4:ce4eea1c2a28 213 return *skate_duck_right;
lewisgw 9:fff2009f826e 214 } else if (sprite == Skate_duck_left) {
lewisgw 4:ce4eea1c2a28 215 return *skate_duck_left;
lewisgw 9:fff2009f826e 216 } else {
lewisgw 4:ce4eea1c2a28 217 return *skate_stand_right;
lewisgw 9:fff2009f826e 218 }
lewisgw 8:5327418f823a 219 }
lewisgw 8:5327418f823a 220
lewisgw 8:5327418f823a 221 void Skateboarder::fall(bool fall_flag) {
lewisgw 9:fff2009f826e 222 _fall_flag = fall_flag;
lewisgw 9:fff2009f826e 223 _y++;
lewisgw 9:fff2009f826e 224 if (_y == 80) {
lewisgw 9:fff2009f826e 225 _fall_flag = false;
lewisgw 9:fff2009f826e 226 _reset_flag = true;
lewisgw 9:fff2009f826e 227 }
lewisgw 9:fff2009f826e 228 }
lewisgw 8:5327418f823a 229
lewisgw 8:5327418f823a 230 bool Skateboarder::get_fall_flag() {
lewisgw 9:fff2009f826e 231 return _fall_flag;
lewisgw 9:fff2009f826e 232 }
lewisgw 8:5327418f823a 233
lewisgw 8:5327418f823a 234 bool Skateboarder::get_reset_flag() {
lewisgw 9:fff2009f826e 235 return _reset_flag;
lewisgw 9:fff2009f826e 236 }
lewisgw 8:5327418f823a 237
lewisgw 8:5327418f823a 238 void Skateboarder::set_reset_flag(bool flag) {
lewisgw 9:fff2009f826e 239 if (flag) {
lewisgw 9:fff2009f826e 240 _reset_flag = true;
lewisgw 9:fff2009f826e 241 } else {
lewisgw 9:fff2009f826e 242 _reset_flag = false;
lewisgw 9:fff2009f826e 243 }
lewisgw 9:fff2009f826e 244 }
lewisgw 8:5327418f823a 245
lewisgw 8:5327418f823a 246