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@3:28a3c118e071, 2019-03-16 (annotated)
- 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?
User | Revision | Line number | New 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 | } |