ELEC2645 (2018/19) / Mbed 2 deprecated el17lw

Dependencies:   mbed

Committer:
lewisgw
Date:
Tue Mar 19 11:34:21 2019 +0000
Revision:
6:8741d2011692
Parent:
4:ce4eea1c2a28
Child:
7:bbc2b75c1418
Added a Map class, which is used to continuously generate moving platforms with gaps along the bottom of the LCD

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 3:28a3c118e071 180 if(_level == 0){
lewisgw 3:28a3c118e071 181 _y = 23 - 0.5*_jump_counter;
lewisgw 4:ce4eea1c2a28 182 }
lewisgw 3:28a3c118e071 183 else {
lewisgw 4:ce4eea1c2a28 184 _y = 5 - 0.25*_jump_counter;
lewisgw 3:28a3c118e071 185 }
lewisgw 2:16ae940b0aee 186 }
lewisgw 2:16ae940b0aee 187
lewisgw 2:16ae940b0aee 188
lewisgw 2:16ae940b0aee 189
lewisgw 2:16ae940b0aee 190 int Skateboarder::get_x_position(){
lewisgw 2:16ae940b0aee 191 return _x;
lewisgw 2:16ae940b0aee 192 }
lewisgw 2:16ae940b0aee 193
lewisgw 2:16ae940b0aee 194 int Skateboarder::get_moving_counter(){
lewisgw 2:16ae940b0aee 195 return _moving_counter;
lewisgw 2:16ae940b0aee 196 }
lewisgw 2:16ae940b0aee 197
lewisgw 2:16ae940b0aee 198 int Skateboarder::get_y_position(){
lewisgw 2:16ae940b0aee 199 return _y;
lewisgw 2:16ae940b0aee 200 }
lewisgw 2:16ae940b0aee 201
lewisgw 2:16ae940b0aee 202 int Skateboarder::get_jump_counter(){
lewisgw 2:16ae940b0aee 203 return _jump_counter;
lewisgw 2:16ae940b0aee 204 }
lewisgw 3:28a3c118e071 205
lewisgw 3:28a3c118e071 206 Skate_Direction Skateboarder::get_direction(){
lewisgw 3:28a3c118e071 207 return _skate_direction;
lewisgw 3:28a3c118e071 208 }
lewisgw 2:16ae940b0aee 209
lewisgw 3:28a3c118e071 210 Sprite_value Skateboarder::get_sprite_value(){
lewisgw 2:16ae940b0aee 211 return _sprite_value;
lewisgw 2:16ae940b0aee 212 }
lewisgw 3:28a3c118e071 213
lewisgw 3:28a3c118e071 214 int * Skateboarder::get_sprite(Sprite_value sprite){
lewisgw 3:28a3c118e071 215 if(sprite == Skate_right){
lewisgw 3:28a3c118e071 216 return *skate_right;
lewisgw 3:28a3c118e071 217 } else if(sprite == Skate_left){
lewisgw 3:28a3c118e071 218 return *skate_left;
lewisgw 3:28a3c118e071 219 } else if(sprite == Stand_left){
lewisgw 4:ce4eea1c2a28 220 return *skate_stand_left;
lewisgw 4:ce4eea1c2a28 221 } else if(sprite == Skate_duck_right){
lewisgw 4:ce4eea1c2a28 222 return *skate_duck_right;
lewisgw 4:ce4eea1c2a28 223 } else if(sprite == Skate_duck_left){
lewisgw 4:ce4eea1c2a28 224 return *skate_duck_left;
lewisgw 3:28a3c118e071 225 } else {
lewisgw 4:ce4eea1c2a28 226 return *skate_stand_right;
lewisgw 3:28a3c118e071 227 }
lewisgw 3:28a3c118e071 228 }