ELEC2645 (2018/19) / Mbed 2 deprecated el17lw

Dependencies:   mbed

Committer:
lewisgw
Date:
Wed Mar 20 17:56:55 2019 +0000
Revision:
7:bbc2b75c1418
Parent:
6:8741d2011692
Child:
8:5327418f823a
Map is now implemented in the engine class. Skater and random size moving platforms (from map) now exist together. Skater automatically moves with platforms.

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 3:28a3c118e071 231 }