ELEC2645 (2018/19) / Mbed 2 deprecated el17lw

Dependencies:   mbed

Committer:
lewisgw
Date:
Sat Mar 16 10:38:04 2019 +0000
Revision:
3:28a3c118e071
Parent:
2:16ae940b0aee
Child:
4:ce4eea1c2a28
Skateboarder can now jump onto and between higher levels

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lewisgw 2:16ae940b0aee 1 #include "Skateboarder.h"
lewisgw 2:16ae940b0aee 2
lewisgw 3:28a3c118e071 3 int skate_right[17][12] = {
lewisgw 3:28a3c118e071 4
lewisgw 3:28a3c118e071 5 { 0,0,0,0,1,1,1,0,0,0,0,0 },
lewisgw 3:28a3c118e071 6 { 0,0,0,0,1,1,1,1,0,0,0,0 },
lewisgw 3:28a3c118e071 7 { 0,0,1,1,1,1,1,1,0,0,0,0 },
lewisgw 3:28a3c118e071 8 { 0,0,0,0,1,0,1,1,0,0,0,0 },
lewisgw 3:28a3c118e071 9 { 0,0,0,0,1,1,1,0,0,0,0,0 },
lewisgw 3:28a3c118e071 10 { 0,0,0,0,1,1,0,0,0,0,0,0 },
lewisgw 3:28a3c118e071 11 { 0,0,0,0,1,1,0,0,0,0,0,0 },
lewisgw 3:28a3c118e071 12 { 0,0,1,1,1,1,1,1,1,0,0,0 },
lewisgw 3:28a3c118e071 13 { 0,1,1,0,1,1,0,0,1,1,0,0 },
lewisgw 3:28a3c118e071 14 { 0,1,0,0,1,1,0,0,0,0,0,0 },
lewisgw 3:28a3c118e071 15 { 0,0,0,0,1,1,0,0,0,0,0,0 },
lewisgw 3:28a3c118e071 16 { 0,0,0,0,1,1,0,0,0,0,0,0 },
lewisgw 3:28a3c118e071 17 { 0,0,0,0,1,0,1,0,0,0,0,0 },
lewisgw 3:28a3c118e071 18 { 0,0,0,0,1,0,0,1,0,0,0,0 },
lewisgw 3:28a3c118e071 19 { 0,1,0,0,1,0,0,0,1,0,1,0 },
lewisgw 3:28a3c118e071 20 { 0,0,1,1,1,1,1,1,1,1,0,0 },
lewisgw 3:28a3c118e071 21 { 0,0,0,1,0,0,0,0,1,0,0,0 },
lewisgw 3:28a3c118e071 22
lewisgw 3:28a3c118e071 23
lewisgw 3:28a3c118e071 24 };
lewisgw 3:28a3c118e071 25
lewisgw 3:28a3c118e071 26 int skate_left[17][12] = {
lewisgw 3:28a3c118e071 27
lewisgw 3:28a3c118e071 28 { 0,0,0,0,1,1,1,0,0,0,0,0 },
lewisgw 3:28a3c118e071 29 { 0,0,0,1,1,1,1,0,0,0,0,0 },
lewisgw 3:28a3c118e071 30 { 0,0,0,1,1,1,1,1,1,0,0,0 },
lewisgw 3:28a3c118e071 31 { 0,0,0,1,1,0,1,0,0,0,0,0 },
lewisgw 3:28a3c118e071 32 { 0,0,0,0,1,1,1,0,0,0,0,0 },
lewisgw 3:28a3c118e071 33 { 0,0,0,0,0,1,1,0,0,0,0,0 },
lewisgw 3:28a3c118e071 34 { 0,0,0,0,0,1,1,1,0,0,0,0 },
lewisgw 3:28a3c118e071 35 { 0,1,1,1,1,1,1,1,0,0,0,0 },
lewisgw 3:28a3c118e071 36 { 0,0,0,1,1,1,1,1,1,0,0,0 },
lewisgw 3:28a3c118e071 37 { 0,0,0,0,1,1,0,0,1,0,0,0 },
lewisgw 3:28a3c118e071 38 { 0,0,0,0,1,1,0,0,0,1,0,0 },
lewisgw 3:28a3c118e071 39 { 0,0,0,0,1,1,0,0,0,0,0,0 },
lewisgw 3:28a3c118e071 40 { 0,0,0,1,0,1,0,0,0,0,0,0 },
lewisgw 3:28a3c118e071 41 { 0,0,1,0,0,1,0,0,0,0,0,0 },
lewisgw 3:28a3c118e071 42 { 1,1,0,0,0,1,0,0,0,1,0,0 },
lewisgw 3:28a3c118e071 43 { 0,1,1,1,1,1,1,1,1,0,0,0 },
lewisgw 3:28a3c118e071 44 { 0,0,0,1,0,0,0,0,1,0,0,0 },
lewisgw 3:28a3c118e071 45
lewisgw 3:28a3c118e071 46
lewisgw 3:28a3c118e071 47 };
lewisgw 3:28a3c118e071 48
lewisgw 3:28a3c118e071 49 int skate_standing_left[17][12] = {
lewisgw 3:28a3c118e071 50
lewisgw 3:28a3c118e071 51 { 0,0,0,0,1,1,0,0,0,0,0,0 },
lewisgw 3:28a3c118e071 52 { 0,0,0,1,1,1,1,0,0,0,0,0 },
lewisgw 3:28a3c118e071 53 { 0,0,0,1,1,1,1,1,1,0,0,0 },
lewisgw 3:28a3c118e071 54 { 0,0,0,1,0,0,1,0,0,0,0,0 },
lewisgw 3:28a3c118e071 55 { 0,0,0,1,1,1,1,0,0,0,0,0 },
lewisgw 3:28a3c118e071 56 { 0,0,0,0,1,1,0,0,0,0,0,0 },
lewisgw 3:28a3c118e071 57 { 0,0,0,1,1,1,1,0,0,0,0,0 },
lewisgw 3:28a3c118e071 58 { 0,0,1,1,1,1,0,1,0,0,0,0 },
lewisgw 3:28a3c118e071 59 { 1,1,0,1,1,1,0,1,0,0,0,0 },
lewisgw 3:28a3c118e071 60 { 0,0,0,1,1,1,0,0,0,0,0,0 },
lewisgw 3:28a3c118e071 61 { 0,0,1,1,1,1,0,0,0,0,0,0 },
lewisgw 3:28a3c118e071 62 { 1,0,1,0,0,1,0,0,0,0,0,0 },
lewisgw 3:28a3c118e071 63 { 1,1,0,0,0,1,0,0,0,0,0,0 },
lewisgw 3:28a3c118e071 64 { 0,1,0,0,0,1,0,0,0,0,0,0 },
lewisgw 3:28a3c118e071 65 { 1,0,1,0,0,1,0,0,0,0,0,0 },
lewisgw 3:28a3c118e071 66 { 0,0,0,1,0,1,0,0,0,0,0,0 },
lewisgw 3:28a3c118e071 67 { 0,0,1,0,1,1,1,0,0,0,0,0 },
lewisgw 3:28a3c118e071 68
lewisgw 3:28a3c118e071 69
lewisgw 3:28a3c118e071 70 };
lewisgw 3:28a3c118e071 71
lewisgw 3:28a3c118e071 72 int skate_standing_right[17][12] = {
lewisgw 3:28a3c118e071 73
lewisgw 3:28a3c118e071 74 { 0,0,0,0,1,1,0,0,0,0,0,0 },
lewisgw 3:28a3c118e071 75 { 0,0,0,1,1,1,1,0,0,0,0,0 },
lewisgw 3:28a3c118e071 76 { 0,1,1,1,1,1,1,0,0,0,0,0 },
lewisgw 3:28a3c118e071 77 { 0,0,0,1,0,0,1,0,0,0,0,0 },
lewisgw 3:28a3c118e071 78 { 0,0,0,1,1,1,1,0,0,0,0,0 },
lewisgw 3:28a3c118e071 79 { 0,0,0,0,1,1,0,0,0,0,0,0 },
lewisgw 3:28a3c118e071 80 { 0,0,0,1,1,1,1,0,0,0,0,0 },
lewisgw 3:28a3c118e071 81 { 0,0,1,1,1,1,0,1,0,0,0,0 },
lewisgw 3:28a3c118e071 82 { 0,1,0,1,1,1,0,0,1,0,0,0 },
lewisgw 3:28a3c118e071 83 { 0,1,0,1,1,1,0,0,0,0,0,0 },
lewisgw 3:28a3c118e071 84 { 0,0,0,1,1,1,1,1,0,0,0,0 },
lewisgw 3:28a3c118e071 85 { 0,0,0,1,0,0,0,1,0,1,0,0 },
lewisgw 3:28a3c118e071 86 { 0,0,0,1,0,0,0,1,1,0,0,0 },
lewisgw 3:28a3c118e071 87 { 0,0,0,1,0,0,0,1,0,1,0,0 },
lewisgw 3:28a3c118e071 88 { 0,0,0,1,0,0,1,0,0,0,0,0 },
lewisgw 3:28a3c118e071 89 { 0,0,0,1,0,1,0,0,0,0,0,0 },
lewisgw 3:28a3c118e071 90 { 0,0,1,1,1,0,1,0,0,0,0,0 },
lewisgw 3:28a3c118e071 91
lewisgw 3:28a3c118e071 92
lewisgw 3:28a3c118e071 93 };
lewisgw 3:28a3c118e071 94
lewisgw 2:16ae940b0aee 95 Skateboarder::Skateboarder(){}
lewisgw 2:16ae940b0aee 96
lewisgw 2:16ae940b0aee 97 Skateboarder::~Skateboarder(){}
lewisgw 2:16ae940b0aee 98
lewisgw 2:16ae940b0aee 99 void Skateboarder::set_x_position(float joy_x, int moving_counter, Skate_Direction direction) {
lewisgw 2:16ae940b0aee 100
lewisgw 2:16ae940b0aee 101 _skate_direction = direction;
lewisgw 2:16ae940b0aee 102 _moving_counter = moving_counter;
lewisgw 2:16ae940b0aee 103
lewisgw 2:16ae940b0aee 104 if(joy_x > float(0.1)){
lewisgw 2:16ae940b0aee 105 _moving_counter = _moving_counter++;
lewisgw 2:16ae940b0aee 106 _skate_direction = Right;
lewisgw 2:16ae940b0aee 107 _sprite_value = Skate_right;
lewisgw 2:16ae940b0aee 108 } else if(joy_x < float(-0.1)) {
lewisgw 2:16ae940b0aee 109 _moving_counter = _moving_counter--;
lewisgw 2:16ae940b0aee 110 _skate_direction = Left;
lewisgw 2:16ae940b0aee 111 _sprite_value = Skate_left;
lewisgw 2:16ae940b0aee 112 } else if (_skate_direction == Left){
lewisgw 2:16ae940b0aee 113 _sprite_value = Stand_left;
lewisgw 2:16ae940b0aee 114 } else {
lewisgw 2:16ae940b0aee 115 _sprite_value = Stand_right;
lewisgw 2:16ae940b0aee 116 }
lewisgw 2:16ae940b0aee 117 _x = 40 + 0.4*_moving_counter;
lewisgw 2:16ae940b0aee 118
lewisgw 2:16ae940b0aee 119 }
lewisgw 2:16ae940b0aee 120
lewisgw 3:28a3c118e071 121 void Skateboarder::set_y_position(bool jump, int jump_counter, int level) {
lewisgw 2:16ae940b0aee 122
lewisgw 2:16ae940b0aee 123 _jump_counter = jump_counter;
lewisgw 3:28a3c118e071 124 _level = level;
lewisgw 2:16ae940b0aee 125 if(jump) {
lewisgw 2:16ae940b0aee 126 _jump_counter = 40;
lewisgw 2:16ae940b0aee 127 }
lewisgw 2:16ae940b0aee 128 if(_jump_counter !=0){
lewisgw 2:16ae940b0aee 129 _jump_counter--;
lewisgw 2:16ae940b0aee 130 }
lewisgw 3:28a3c118e071 131
lewisgw 3:28a3c118e071 132
lewisgw 3:28a3c118e071 133
lewisgw 3:28a3c118e071 134 if(_level == 0){
lewisgw 3:28a3c118e071 135 _y = 23 - 0.5*_jump_counter;
lewisgw 3:28a3c118e071 136 }
lewisgw 3:28a3c118e071 137
lewisgw 3:28a3c118e071 138 else {
lewisgw 3:28a3c118e071 139 _y = 5 - 0.25*_jump_counter; // need to get rid of double jump use if(jump)
lewisgw 3:28a3c118e071 140 }
lewisgw 2:16ae940b0aee 141
lewisgw 2:16ae940b0aee 142 }
lewisgw 2:16ae940b0aee 143
lewisgw 2:16ae940b0aee 144
lewisgw 2:16ae940b0aee 145
lewisgw 2:16ae940b0aee 146 int Skateboarder::get_x_position(){
lewisgw 2:16ae940b0aee 147 return _x;
lewisgw 2:16ae940b0aee 148 }
lewisgw 2:16ae940b0aee 149
lewisgw 2:16ae940b0aee 150 int Skateboarder::get_moving_counter(){
lewisgw 2:16ae940b0aee 151 return _moving_counter;
lewisgw 2:16ae940b0aee 152 }
lewisgw 2:16ae940b0aee 153
lewisgw 2:16ae940b0aee 154 int Skateboarder::get_y_position(){
lewisgw 2:16ae940b0aee 155 return _y;
lewisgw 2:16ae940b0aee 156 }
lewisgw 2:16ae940b0aee 157
lewisgw 2:16ae940b0aee 158 int Skateboarder::get_jump_counter(){
lewisgw 2:16ae940b0aee 159 return _jump_counter;
lewisgw 2:16ae940b0aee 160 }
lewisgw 3:28a3c118e071 161
lewisgw 3:28a3c118e071 162 Skate_Direction Skateboarder::get_direction(){
lewisgw 3:28a3c118e071 163 return _skate_direction;
lewisgw 3:28a3c118e071 164 }
lewisgw 2:16ae940b0aee 165
lewisgw 3:28a3c118e071 166 Sprite_value Skateboarder::get_sprite_value(){
lewisgw 2:16ae940b0aee 167 return _sprite_value;
lewisgw 2:16ae940b0aee 168 }
lewisgw 3:28a3c118e071 169
lewisgw 3:28a3c118e071 170 int * Skateboarder::get_sprite(Sprite_value sprite){
lewisgw 3:28a3c118e071 171 if(sprite == Skate_right){
lewisgw 3:28a3c118e071 172 return *skate_right;
lewisgw 3:28a3c118e071 173 } else if(sprite == Skate_left){
lewisgw 3:28a3c118e071 174 return *skate_left;
lewisgw 3:28a3c118e071 175 } else if(sprite == Stand_left){
lewisgw 3:28a3c118e071 176 return *skate_standing_left;
lewisgw 3:28a3c118e071 177 } else {
lewisgw 3:28a3c118e071 178 return *skate_standing_right;
lewisgw 3:28a3c118e071 179 }
lewisgw 3:28a3c118e071 180 }