ELEC2645 (2016/17) / Mbed 2 deprecated 2645_Project_el15as

Dependencies:   mbed

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?

UserRevisionLine numberNew 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 */