ELEC2645 (2018/19) / Mbed 2 deprecated el17lw

Dependencies:   mbed

Committer:
lewisgw
Date:
Sat Mar 23 15:36:56 2019 +0000
Revision:
8:5327418f823a
Parent:
7:bbc2b75c1418
Child:
9:fff2009f826e
Skater can fall between gaps in the platforms. If skater falls between gaps or goes of the screen, a reset function resets the game.

Who changed what in which revision?

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