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