Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Skateboarder/Stakeboarder.cpp@7:bbc2b75c1418, 2019-03-20 (annotated)
- 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?
User | Revision | Line number | New 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 | } |