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
Animation/Animation.cpp@6:33fd1797beb4, 2017-05-01 (annotated)
- Committer:
- el15as
- Date:
- Mon May 01 22:47:46 2017 +0000
- Revision:
- 6:33fd1797beb4
- Parent:
- 5:158e2951654b
- Child:
- 7:b54323241435
Levels 4 and 5 added; Coin physics programmed
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
el15as | 6:33fd1797beb4 | 1 | #include "Animation.h" |
el15as | 6:33fd1797beb4 | 2 | |
el15as | 6:33fd1797beb4 | 3 | Animation::Animation() |
el15as | 6:33fd1797beb4 | 4 | { |
el15as | 6:33fd1797beb4 | 5 | |
el15as | 6:33fd1797beb4 | 6 | } |
el15as | 4:1f7f32f3e017 | 7 | |
el15as | 6:33fd1797beb4 | 8 | Animation::~Animation() |
el15as | 6:33fd1797beb4 | 9 | { |
el15as | 4:1f7f32f3e017 | 10 | |
el15as | 6:33fd1797beb4 | 11 | } |
el15as | 4:1f7f32f3e017 | 12 | |
el15as | 6:33fd1797beb4 | 13 | void Animation::spawn(N5110 &lcd, intVector2D starting_position) |
el15as | 5:158e2951654b | 14 | { |
el15as | 6:33fd1797beb4 | 15 | if (spawnCycle == 0) |
el15as | 6:33fd1797beb4 | 16 | { |
el15as | 6:33fd1797beb4 | 17 | lcd.setPixel(starting_position.x + 1, starting_position.y - 1, false); |
el15as | 6:33fd1797beb4 | 18 | lcd.refresh(); |
el15as | 6:33fd1797beb4 | 19 | wait(0.1); |
el15as | 4:1f7f32f3e017 | 20 | |
el15as | 6:33fd1797beb4 | 21 | lcd.setPixel(starting_position.x, starting_position.y - 1, false); |
el15as | 6:33fd1797beb4 | 22 | lcd.setPixel(starting_position.x + 2, starting_position.y - 1, false); |
el15as | 6:33fd1797beb4 | 23 | lcd.refresh(); |
el15as | 6:33fd1797beb4 | 24 | wait(0.1); |
el15as | 6:33fd1797beb4 | 25 | |
el15as | 6:33fd1797beb4 | 26 | lcd.setPixel(starting_position.x - 1, starting_position.y - 1, false); |
el15as | 6:33fd1797beb4 | 27 | lcd.setPixel(starting_position.x + 3, starting_position.y - 1, false); |
el15as | 6:33fd1797beb4 | 28 | lcd.setPixel(starting_position.x, starting_position.y - 1); |
el15as | 6:33fd1797beb4 | 29 | lcd.setPixel(starting_position.x + 2, starting_position.y - 1); |
el15as | 6:33fd1797beb4 | 30 | lcd.setPixel(starting_position.x + 1, starting_position.y - 1); |
el15as | 6:33fd1797beb4 | 31 | lcd.refresh(); |
el15as | 6:33fd1797beb4 | 32 | wait(0.1); |
el15as | 4:1f7f32f3e017 | 33 | |
el15as | 6:33fd1797beb4 | 34 | lcd.setPixel(starting_position.x + 1, starting_position.y - 1, false); |
el15as | 6:33fd1797beb4 | 35 | lcd.setPixel(starting_position.x, starting_position.y); |
el15as | 6:33fd1797beb4 | 36 | lcd.setPixel(starting_position.x + 2, starting_position.y); |
el15as | 6:33fd1797beb4 | 37 | lcd.setPixel(starting_position.x + 1, starting_position.y); |
el15as | 6:33fd1797beb4 | 38 | lcd.refresh(); |
el15as | 6:33fd1797beb4 | 39 | wait(0.1); |
el15as | 5:158e2951654b | 40 | |
el15as | 6:33fd1797beb4 | 41 | lcd.setPixel(starting_position.x + 1, starting_position.y - 1); |
el15as | 6:33fd1797beb4 | 42 | lcd.setPixel(starting_position.x + 1, starting_position.y, false); |
el15as | 6:33fd1797beb4 | 43 | lcd.setPixel(starting_position.x, starting_position.y + 1); |
el15as | 6:33fd1797beb4 | 44 | lcd.setPixel(starting_position.x + 2, starting_position.y + 1); |
el15as | 6:33fd1797beb4 | 45 | lcd.setPixel(starting_position.x + 1, starting_position.y + 1); |
el15as | 6:33fd1797beb4 | 46 | lcd.refresh(); |
el15as | 6:33fd1797beb4 | 47 | wait(0.1); |
el15as | 5:158e2951654b | 48 | |
el15as | 6:33fd1797beb4 | 49 | spawnCycle++; |
el15as | 6:33fd1797beb4 | 50 | } |
el15as | 6:33fd1797beb4 | 51 | else if (spawnCycle == 1) |
el15as | 6:33fd1797beb4 | 52 | { |
el15as | 6:33fd1797beb4 | 53 | lcd.setPixel(starting_position.x, starting_position.y - 1, false); |
el15as | 6:33fd1797beb4 | 54 | lcd.setPixel(starting_position.x + 1, starting_position.y - 1, false); |
el15as | 6:33fd1797beb4 | 55 | lcd.setPixel(starting_position.x + 2, starting_position.y - 1, false); |
el15as | 6:33fd1797beb4 | 56 | spawnCycle++; |
el15as | 6:33fd1797beb4 | 57 | } |
el15as | 6:33fd1797beb4 | 58 | else if (spawnCycle == 2) |
el15as | 6:33fd1797beb4 | 59 | { |
el15as | 6:33fd1797beb4 | 60 | lcd.setPixel(starting_position.x + 1, starting_position.y - 1, false); |
el15as | 6:33fd1797beb4 | 61 | spawnCycle++; |
el15as | 4:1f7f32f3e017 | 62 | } |
el15as | 4:1f7f32f3e017 | 63 | } |
el15as | 4:1f7f32f3e017 | 64 | |
el15as | 6:33fd1797beb4 | 65 | void Animation::death(N5110 &lcd, intVector2D position, int frame) |
el15as | 6:33fd1797beb4 | 66 | { |
el15as | 6:33fd1797beb4 | 67 | if (frame == 0) |
el15as | 6:33fd1797beb4 | 68 | { |
el15as | 6:33fd1797beb4 | 69 | lcd.setPixel(position.x + 1, position.y, false); |
el15as | 6:33fd1797beb4 | 70 | lcd.setPixel(position.x, position.y + 1, false); |
el15as | 6:33fd1797beb4 | 71 | lcd.setPixel(position.x + 1, position.y + 2, false); |
el15as | 6:33fd1797beb4 | 72 | lcd.setPixel(position.x + 2, position.y + 1, false); |
el15as | 6:33fd1797beb4 | 73 | lcd.setPixel(position.x + 1, position.y - 1); |
el15as | 6:33fd1797beb4 | 74 | lcd.setPixel(position.x - 1, position.y + 1); |
el15as | 6:33fd1797beb4 | 75 | lcd.setPixel(position.x + 1, position.y + 3); |
el15as | 6:33fd1797beb4 | 76 | lcd.setPixel(position.x + 3, position.y + 1); |
el15as | 6:33fd1797beb4 | 77 | } |
el15as | 6:33fd1797beb4 | 78 | else if (frame == 1) |
el15as | 6:33fd1797beb4 | 79 | { |
el15as | 6:33fd1797beb4 | 80 | lcd.setPixel(position.x + 1, position.y - 1, false); |
el15as | 6:33fd1797beb4 | 81 | lcd.setPixel(position.x - 1, position.y + 1, false); |
el15as | 6:33fd1797beb4 | 82 | lcd.setPixel(position.x + 1, position.y + 3, false); |
el15as | 6:33fd1797beb4 | 83 | lcd.setPixel(position.x + 3, position.y + 1, false); |
el15as | 6:33fd1797beb4 | 84 | lcd.setPixel(position.x, position.y, false); |
el15as | 6:33fd1797beb4 | 85 | lcd.setPixel(position.x + 2, position.y + 2, false); |
el15as | 6:33fd1797beb4 | 86 | lcd.setPixel(position.x + 2, position.y, false); |
el15as | 6:33fd1797beb4 | 87 | lcd.setPixel(position.x, position.y + 2, false); |
el15as | 6:33fd1797beb4 | 88 | lcd.setPixel(position.x, position.y - 1); |
el15as | 6:33fd1797beb4 | 89 | lcd.setPixel(position.x - 1, position.y); |
el15as | 6:33fd1797beb4 | 90 | lcd.setPixel(position.x + 3, position.y); |
el15as | 6:33fd1797beb4 | 91 | lcd.setPixel(position.x + 2, position.y - 1); |
el15as | 6:33fd1797beb4 | 92 | lcd.setPixel(position.x - 1, position.y + 2); |
el15as | 6:33fd1797beb4 | 93 | lcd.setPixel(position.x, position.y + 3); |
el15as | 6:33fd1797beb4 | 94 | lcd.setPixel(position.x + 3, position.y + 2); |
el15as | 6:33fd1797beb4 | 95 | lcd.setPixel(position.x + 2, position.y + 3); |
el15as | 6:33fd1797beb4 | 96 | } |
el15as | 6:33fd1797beb4 | 97 | else if (frame == 2) |
el15as | 6:33fd1797beb4 | 98 | { |
el15as | 6:33fd1797beb4 | 99 | lcd.setPixel(position.x, position.y - 1, false); |
el15as | 6:33fd1797beb4 | 100 | lcd.setPixel(position.x - 1, position.y, false); |
el15as | 6:33fd1797beb4 | 101 | lcd.setPixel(position.x + 3, position.y, false); |
el15as | 6:33fd1797beb4 | 102 | lcd.setPixel(position.x + 2, position.y - 1, false); |
el15as | 6:33fd1797beb4 | 103 | lcd.setPixel(position.x - 1, position.y + 2, false); |
el15as | 6:33fd1797beb4 | 104 | lcd.setPixel(position.x, position.y + 3, false); |
el15as | 6:33fd1797beb4 | 105 | lcd.setPixel(position.x + 3, position.y + 2, false); |
el15as | 6:33fd1797beb4 | 106 | lcd.setPixel(position.x + 2, position.y + 3, false); |
el15as | 6:33fd1797beb4 | 107 | lcd.setPixel(position.x, position.y - 2); |
el15as | 6:33fd1797beb4 | 108 | lcd.setPixel(position.x - 2, position.y); |
el15as | 6:33fd1797beb4 | 109 | lcd.setPixel(position.x + 4, position.y); |
el15as | 6:33fd1797beb4 | 110 | lcd.setPixel(position.x + 2, position.y - 2); |
el15as | 6:33fd1797beb4 | 111 | lcd.setPixel(position.x - 2, position.y + 2); |
el15as | 6:33fd1797beb4 | 112 | lcd.setPixel(position.x, position.y + 4); |
el15as | 6:33fd1797beb4 | 113 | lcd.setPixel(position.x + 4, position.y + 2); |
el15as | 6:33fd1797beb4 | 114 | lcd.setPixel(position.x + 2, position.y + 4); |
el15as | 6:33fd1797beb4 | 115 | } |
el15as | 6:33fd1797beb4 | 116 | else if (frame == 3) |
el15as | 6:33fd1797beb4 | 117 | { |
el15as | 6:33fd1797beb4 | 118 | lcd.setPixel(position.x, position.y - 2, false); |
el15as | 6:33fd1797beb4 | 119 | lcd.setPixel(position.x - 2, position.y, false); |
el15as | 6:33fd1797beb4 | 120 | lcd.setPixel(position.x + 4, position.y, false); |
el15as | 6:33fd1797beb4 | 121 | lcd.setPixel(position.x + 2, position.y - 2, false); |
el15as | 6:33fd1797beb4 | 122 | lcd.setPixel(position.x - 2, position.y + 2, false); |
el15as | 6:33fd1797beb4 | 123 | lcd.setPixel(position.x, position.y + 4, false); |
el15as | 6:33fd1797beb4 | 124 | lcd.setPixel(position.x + 4, position.y + 2, false); |
el15as | 6:33fd1797beb4 | 125 | lcd.setPixel(position.x + 2, position.y + 4, false); |
el15as | 6:33fd1797beb4 | 126 | } |
el15as | 6:33fd1797beb4 | 127 | } |
el15as | 4:1f7f32f3e017 | 128 | |
el15as | 6:33fd1797beb4 | 129 | void Animation::finish(N5110 &lcd, intVector2D finish_position) |
el15as | 6:33fd1797beb4 | 130 | { |
el15as | 6:33fd1797beb4 | 131 | lcd.setPixel(finish_position.x + 3, finish_position.y + 2, false); |
el15as | 6:33fd1797beb4 | 132 | lcd.refresh(); |
el15as | 6:33fd1797beb4 | 133 | wait(0.1); |
el15as | 6:33fd1797beb4 | 134 | |
el15as | 6:33fd1797beb4 | 135 | lcd.setPixel(finish_position.x + 3, finish_position.y + 1, false); |
el15as | 6:33fd1797beb4 | 136 | lcd.refresh(); |
el15as | 6:33fd1797beb4 | 137 | wait(0.1); |
el15as | 6:33fd1797beb4 | 138 | |
el15as | 6:33fd1797beb4 | 139 | lcd.setPixel(finish_position.x + 3, finish_position.y, false); |
el15as | 6:33fd1797beb4 | 140 | lcd.refresh(); |
el15as | 6:33fd1797beb4 | 141 | wait(0.1); |
el15as | 6:33fd1797beb4 | 142 | |
el15as | 6:33fd1797beb4 | 143 | lcd.setPixel(finish_position.x + 3, finish_position.y - 1, false); |
el15as | 6:33fd1797beb4 | 144 | lcd.setPixel(finish_position.x + 3, finish_position.y + 2); |
el15as | 6:33fd1797beb4 | 145 | lcd.setPixel(finish_position.x + 3, finish_position.y + 1); |
el15as | 6:33fd1797beb4 | 146 | lcd.setPixel(finish_position.x + 3, finish_position.y); |
el15as | 6:33fd1797beb4 | 147 | lcd.setPixel(finish_position.x + 2, finish_position.y + 1, false); |
el15as | 6:33fd1797beb4 | 148 | lcd.setPixel(finish_position.x + 1, finish_position.y + 1); |
el15as | 6:33fd1797beb4 | 149 | lcd.setPixel(finish_position.x, finish_position.y, false); |
el15as | 6:33fd1797beb4 | 150 | lcd.setPixel(finish_position.x, finish_position.y + 1, false); |
el15as | 6:33fd1797beb4 | 151 | lcd.setPixel(finish_position.x, finish_position.y + 2, false); |
el15as | 6:33fd1797beb4 | 152 | lcd.refresh(); |
el15as | 6:33fd1797beb4 | 153 | wait(0.1); |
el15as | 6:33fd1797beb4 | 154 | |
el15as | 6:33fd1797beb4 | 155 | lcd.setPixel(finish_position.x + 1, finish_position.y, false); |
el15as | 6:33fd1797beb4 | 156 | lcd.setPixel(finish_position.x + 1, finish_position.y + 1, false); |
el15as | 6:33fd1797beb4 | 157 | lcd.setPixel(finish_position.x + 1, finish_position.y + 2, false); |
el15as | 6:33fd1797beb4 | 158 | lcd.setPixel(finish_position.x + 2, finish_position.y + 1); |
el15as | 6:33fd1797beb4 | 159 | lcd.setPixel(finish_position.x + 3, finish_position.y + 1, false); |
el15as | 6:33fd1797beb4 | 160 | lcd.refresh(); |
el15as | 6:33fd1797beb4 | 161 | wait(0.1); |
el15as | 6:33fd1797beb4 | 162 | |
el15as | 6:33fd1797beb4 | 163 | lcd.setPixel(finish_position.x + 2, finish_position.y, false); |
el15as | 6:33fd1797beb4 | 164 | lcd.setPixel(finish_position.x + 2, finish_position.y + 1, false); |
el15as | 6:33fd1797beb4 | 165 | lcd.setPixel(finish_position.x + 2, finish_position.y + 2, false); |
el15as | 6:33fd1797beb4 | 166 | lcd.setPixel(finish_position.x + 3, finish_position.y + 1); |
el15as | 6:33fd1797beb4 | 167 | lcd.refresh(); |
el15as | 6:33fd1797beb4 | 168 | wait(0.1); |
el15as | 6:33fd1797beb4 | 169 | |
el15as | 6:33fd1797beb4 | 170 | lcd.setPixel(finish_position.x + 3, finish_position.y, false); |
el15as | 6:33fd1797beb4 | 171 | lcd.setPixel(finish_position.x + 3, finish_position.y + 1, false); |
el15as | 6:33fd1797beb4 | 172 | lcd.setPixel(finish_position.x + 3, finish_position.y + 2, false); |
el15as | 6:33fd1797beb4 | 173 | lcd.setPixel(finish_position.x + 3, finish_position.y - 1); |
el15as | 6:33fd1797beb4 | 174 | lcd.refresh(); |
el15as | 6:33fd1797beb4 | 175 | wait(0.1); |
el15as | 6:33fd1797beb4 | 176 | |
el15as | 6:33fd1797beb4 | 177 | lcd.setPixel(finish_position.x + 3, finish_position.y); |
el15as | 6:33fd1797beb4 | 178 | lcd.refresh(); |
el15as | 6:33fd1797beb4 | 179 | wait(0.1); |
el15as | 6:33fd1797beb4 | 180 | |
el15as | 6:33fd1797beb4 | 181 | lcd.setPixel(finish_position.x + 3, finish_position.y + 1); |
el15as | 6:33fd1797beb4 | 182 | lcd.refresh(); |
el15as | 6:33fd1797beb4 | 183 | wait(0.1); |
el15as | 6:33fd1797beb4 | 184 | |
el15as | 6:33fd1797beb4 | 185 | lcd.setPixel(finish_position.x + 3, finish_position.y + 2); |
el15as | 6:33fd1797beb4 | 186 | lcd.refresh(); |
el15as | 6:33fd1797beb4 | 187 | wait(0.1); |
el15as | 6:33fd1797beb4 | 188 | } |
el15as | 6:33fd1797beb4 | 189 | |
el15as | 6:33fd1797beb4 | 190 | /* |
el15as | 6:33fd1797beb4 | 191 | void GameEngine::draw_death_animation(N5110 &lcd) |
el15as | 6:33fd1797beb4 | 192 | { |
el15as | 6:33fd1797beb4 | 193 | int y = 0; |
el15as | 6:33fd1797beb4 | 194 | int animation_width = 84; |
el15as | 6:33fd1797beb4 | 195 | int animation_height = 48; |
el15as | 6:33fd1797beb4 | 196 | |
el15as | 6:33fd1797beb4 | 197 | for (int x = 0; x < 23; x++) { |
el15as | 6:33fd1797beb4 | 198 | lcd.drawRect(x, y, animation_width, animation_height, FILL_TRANSPARENT); |
el15as | 6:33fd1797beb4 | 199 | lcd.refresh(); |
el15as | 6:33fd1797beb4 | 200 | y++; |
el15as | 6:33fd1797beb4 | 201 | animation_width = animation_width - 2; |
el15as | 6:33fd1797beb4 | 202 | animation_height = animation_height - 2; |
el15as | 6:33fd1797beb4 | 203 | wait(0.03); |
el15as | 6:33fd1797beb4 | 204 | } |
el15as | 6:33fd1797beb4 | 205 | } |
el15as | 6:33fd1797beb4 | 206 | */ |