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@7:b54323241435, 2017-05-02 (annotated)
- Committer:
- el15as
- Date:
- Tue May 02 00:20:44 2017 +0000
- Revision:
- 7:b54323241435
- Parent:
- 6:33fd1797beb4
- Child:
- 8:c3cf8d1057bb
Sounds added; Menu class added
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 | 7:b54323241435 | 129 | void Animation::finish(N5110 &lcd, intVector2D finish_position, Gamepad &pad, bool soundOn) |
| 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 | 7:b54323241435 | 133 | if (soundOn) pad.tone(523.25f,0.1f); |
| el15as | 6:33fd1797beb4 | 134 | wait(0.1); |
| el15as | 6:33fd1797beb4 | 135 | |
| el15as | 6:33fd1797beb4 | 136 | lcd.setPixel(finish_position.x + 3, finish_position.y + 1, false); |
| el15as | 6:33fd1797beb4 | 137 | lcd.refresh(); |
| el15as | 7:b54323241435 | 138 | if (soundOn) pad.tone(659.25f,0.1f); |
| el15as | 6:33fd1797beb4 | 139 | wait(0.1); |
| el15as | 6:33fd1797beb4 | 140 | |
| el15as | 6:33fd1797beb4 | 141 | lcd.setPixel(finish_position.x + 3, finish_position.y, false); |
| el15as | 6:33fd1797beb4 | 142 | lcd.refresh(); |
| el15as | 7:b54323241435 | 143 | if (soundOn) pad.tone(784.0f,0.1f); |
| el15as | 6:33fd1797beb4 | 144 | wait(0.1); |
| el15as | 6:33fd1797beb4 | 145 | |
| el15as | 6:33fd1797beb4 | 146 | lcd.setPixel(finish_position.x + 3, finish_position.y - 1, false); |
| el15as | 6:33fd1797beb4 | 147 | lcd.setPixel(finish_position.x + 3, finish_position.y + 2); |
| el15as | 6:33fd1797beb4 | 148 | lcd.setPixel(finish_position.x + 3, finish_position.y + 1); |
| el15as | 6:33fd1797beb4 | 149 | lcd.setPixel(finish_position.x + 3, finish_position.y); |
| el15as | 6:33fd1797beb4 | 150 | lcd.setPixel(finish_position.x + 2, finish_position.y + 1, false); |
| el15as | 6:33fd1797beb4 | 151 | lcd.setPixel(finish_position.x + 1, finish_position.y + 1); |
| el15as | 6:33fd1797beb4 | 152 | lcd.setPixel(finish_position.x, finish_position.y, false); |
| el15as | 6:33fd1797beb4 | 153 | lcd.setPixel(finish_position.x, finish_position.y + 1, false); |
| el15as | 6:33fd1797beb4 | 154 | lcd.setPixel(finish_position.x, finish_position.y + 2, false); |
| el15as | 6:33fd1797beb4 | 155 | lcd.refresh(); |
| el15as | 7:b54323241435 | 156 | if (soundOn) pad.tone(1046.5f,0.1f); |
| el15as | 6:33fd1797beb4 | 157 | wait(0.1); |
| el15as | 6:33fd1797beb4 | 158 | |
| el15as | 6:33fd1797beb4 | 159 | lcd.setPixel(finish_position.x + 1, finish_position.y, false); |
| el15as | 6:33fd1797beb4 | 160 | lcd.setPixel(finish_position.x + 1, finish_position.y + 1, false); |
| el15as | 6:33fd1797beb4 | 161 | lcd.setPixel(finish_position.x + 1, finish_position.y + 2, false); |
| el15as | 6:33fd1797beb4 | 162 | lcd.setPixel(finish_position.x + 2, finish_position.y + 1); |
| el15as | 6:33fd1797beb4 | 163 | lcd.setPixel(finish_position.x + 3, finish_position.y + 1, false); |
| el15as | 6:33fd1797beb4 | 164 | lcd.refresh(); |
| el15as | 6:33fd1797beb4 | 165 | wait(0.1); |
| el15as | 6:33fd1797beb4 | 166 | |
| el15as | 6:33fd1797beb4 | 167 | lcd.setPixel(finish_position.x + 2, finish_position.y, false); |
| el15as | 6:33fd1797beb4 | 168 | lcd.setPixel(finish_position.x + 2, finish_position.y + 1, false); |
| el15as | 6:33fd1797beb4 | 169 | lcd.setPixel(finish_position.x + 2, finish_position.y + 2, false); |
| el15as | 6:33fd1797beb4 | 170 | lcd.setPixel(finish_position.x + 3, finish_position.y + 1); |
| el15as | 6:33fd1797beb4 | 171 | lcd.refresh(); |
| el15as | 6:33fd1797beb4 | 172 | wait(0.1); |
| el15as | 6:33fd1797beb4 | 173 | |
| el15as | 6:33fd1797beb4 | 174 | lcd.setPixel(finish_position.x + 3, finish_position.y, false); |
| el15as | 6:33fd1797beb4 | 175 | lcd.setPixel(finish_position.x + 3, finish_position.y + 1, false); |
| el15as | 6:33fd1797beb4 | 176 | lcd.setPixel(finish_position.x + 3, finish_position.y + 2, false); |
| el15as | 6:33fd1797beb4 | 177 | lcd.setPixel(finish_position.x + 3, finish_position.y - 1); |
| 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); |
| 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 + 1); |
| el15as | 6:33fd1797beb4 | 186 | lcd.refresh(); |
| el15as | 6:33fd1797beb4 | 187 | wait(0.1); |
| el15as | 6:33fd1797beb4 | 188 | |
| el15as | 6:33fd1797beb4 | 189 | lcd.setPixel(finish_position.x + 3, finish_position.y + 2); |
| el15as | 6:33fd1797beb4 | 190 | lcd.refresh(); |
| el15as | 6:33fd1797beb4 | 191 | wait(0.1); |
| el15as | 6:33fd1797beb4 | 192 | } |
| el15as | 6:33fd1797beb4 | 193 | |
| el15as | 6:33fd1797beb4 | 194 | /* |
| el15as | 6:33fd1797beb4 | 195 | void GameEngine::draw_death_animation(N5110 &lcd) |
| el15as | 6:33fd1797beb4 | 196 | { |
| el15as | 6:33fd1797beb4 | 197 | int y = 0; |
| el15as | 6:33fd1797beb4 | 198 | int animation_width = 84; |
| el15as | 6:33fd1797beb4 | 199 | int animation_height = 48; |
| el15as | 6:33fd1797beb4 | 200 | |
| el15as | 6:33fd1797beb4 | 201 | for (int x = 0; x < 23; x++) { |
| el15as | 6:33fd1797beb4 | 202 | lcd.drawRect(x, y, animation_width, animation_height, FILL_TRANSPARENT); |
| el15as | 6:33fd1797beb4 | 203 | lcd.refresh(); |
| el15as | 6:33fd1797beb4 | 204 | y++; |
| el15as | 6:33fd1797beb4 | 205 | animation_width = animation_width - 2; |
| el15as | 6:33fd1797beb4 | 206 | animation_height = animation_height - 2; |
| el15as | 6:33fd1797beb4 | 207 | wait(0.03); |
| el15as | 6:33fd1797beb4 | 208 | } |
| el15as | 6:33fd1797beb4 | 209 | } |
| el15as | 6:33fd1797beb4 | 210 | */ |