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