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

Dependencies:   mbed

Revision:
4:1f7f32f3e017
Child:
5:158e2951654b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Animation/Animation.cpp	Mon Apr 24 22:32:40 2017 +0000
@@ -0,0 +1,189 @@
+#include "Animation.h"
+
+Animation::Animation()
+{
+
+}
+
+Animation::~Animation()
+{
+
+}
+
+void Animation::spawn(N5110 &lcd, intVector2D starting_position)
+{
+    if (spawnCycle == 0)
+    {
+        lcd.setPixel(starting_position.x + 1, starting_position.y - 1, false);
+        lcd.refresh();
+        wait(0.1);
+
+        lcd.setPixel(starting_position.x, starting_position.y - 1, false);
+        lcd.setPixel(starting_position.x + 2, starting_position.y - 1, false);
+        lcd.refresh();
+        wait(0.1);
+
+        lcd.setPixel(starting_position.x - 1, starting_position.y - 1, false);
+        lcd.setPixel(starting_position.x + 3, starting_position.y - 1, false);
+        lcd.setPixel(starting_position.x, starting_position.y - 1);
+        lcd.setPixel(starting_position.x + 2, starting_position.y - 1);
+        lcd.setPixel(starting_position.x + 1, starting_position.y - 1);
+        lcd.refresh();
+        wait(0.1);
+
+        lcd.setPixel(starting_position.x + 1, starting_position.y - 1, false);
+        lcd.setPixel(starting_position.x, starting_position.y);
+        lcd.setPixel(starting_position.x + 2, starting_position.y);
+        lcd.setPixel(starting_position.x + 1, starting_position.y);
+        lcd.refresh();
+        wait(0.1);
+
+        lcd.setPixel(starting_position.x + 1, starting_position.y - 1);
+        lcd.setPixel(starting_position.x + 1, starting_position.y, false);
+        lcd.setPixel(starting_position.x, starting_position.y + 1);
+        lcd.setPixel(starting_position.x + 2, starting_position.y + 1);
+        lcd.setPixel(starting_position.x + 1, starting_position.y + 1);
+        lcd.refresh();
+        wait(0.1);
+
+        spawnCycle++;
+    }
+    else if (spawnCycle == 1)
+    {
+        lcd.setPixel(starting_position.x, starting_position.y - 1, false);
+        lcd.setPixel(starting_position.x + 1, starting_position.y - 1, false);
+        lcd.setPixel(starting_position.x + 2, starting_position.y - 1, false);
+        spawnCycle++;
+    }
+    else if (spawnCycle == 2)
+    {
+        lcd.setPixel(starting_position.x + 1, starting_position.y - 1, false);
+        spawnCycle++;
+    }
+}
+
+void Animation::death(N5110 &lcd, intVector2D position, int frame)
+{
+    if (frame == 0)
+    {
+        lcd.setPixel(position.x + 1, position.y, false);
+        lcd.setPixel(position.x, position.y + 1, false);
+        lcd.setPixel(position.x + 1, position.y + 2, false);
+        lcd.setPixel(position.x + 2, position.y + 1, false);
+        lcd.setPixel(position.x + 1, position.y - 1);
+        lcd.setPixel(position.x - 1, position.y + 1);
+        lcd.setPixel(position.x + 1, position.y + 3);
+        lcd.setPixel(position.x + 3, position.y + 1);
+    }
+    else if (frame == 1)
+    {
+        lcd.setPixel(position.x + 1, position.y - 1, false);
+        lcd.setPixel(position.x - 1, position.y + 1, false);
+        lcd.setPixel(position.x + 1, position.y + 3, false);
+        lcd.setPixel(position.x + 3, position.y + 1, false);
+        lcd.setPixel(position.x, position.y, false);
+        lcd.setPixel(position.x + 2, position.y + 2, false);
+        lcd.setPixel(position.x + 2, position.y, false);
+        lcd.setPixel(position.x, position.y + 2, false);
+        lcd.setPixel(position.x, position.y - 1);
+        lcd.setPixel(position.x - 1, position.y);
+        lcd.setPixel(position.x + 3, position.y);
+        lcd.setPixel(position.x + 2, position.y - 1);
+        lcd.setPixel(position.x - 1, position.y + 2);
+        lcd.setPixel(position.x, position.y + 3);
+        lcd.setPixel(position.x + 3, position.y + 2);
+        lcd.setPixel(position.x + 2, position.y + 3);
+    }
+    else if (frame == 2)
+    {
+        lcd.setPixel(position.x, position.y - 1, false);
+        lcd.setPixel(position.x - 1, position.y, false);
+        lcd.setPixel(position.x + 3, position.y, false);
+        lcd.setPixel(position.x + 2, position.y - 1, false);
+        lcd.setPixel(position.x - 1, position.y + 2, false);
+        lcd.setPixel(position.x, position.y + 3, false);
+        lcd.setPixel(position.x + 3, position.y + 2, false);
+        lcd.setPixel(position.x + 2, position.y + 3, false);
+        lcd.setPixel(position.x, position.y - 2);
+        lcd.setPixel(position.x - 2, position.y);
+        lcd.setPixel(position.x + 4, position.y);
+        lcd.setPixel(position.x + 2, position.y - 2);
+        lcd.setPixel(position.x - 2, position.y + 2);
+        lcd.setPixel(position.x, position.y + 4);
+        lcd.setPixel(position.x + 4, position.y + 2);
+        lcd.setPixel(position.x + 2, position.y + 4);
+    }
+    else if (frame == 3)
+    {
+        lcd.setPixel(position.x, position.y - 2, false);
+        lcd.setPixel(position.x - 2, position.y, false);
+        lcd.setPixel(position.x + 4, position.y, false);
+        lcd.setPixel(position.x + 2, position.y - 2, false);
+        lcd.setPixel(position.x - 2, position.y + 2, false);
+        lcd.setPixel(position.x, position.y + 4, false);
+        lcd.setPixel(position.x + 4, position.y + 2, false);
+        lcd.setPixel(position.x + 2, position.y + 4, false);
+    }
+}
+
+void Animation::finish(N5110 &lcd, intVector2D finish_position)
+{
+    lcd.setPixel(finish_position.x + 3, finish_position.y + 2, false);
+    lcd.refresh();
+    wait(0.1);
+
+    lcd.setPixel(finish_position.x + 3, finish_position.y + 1, false);
+    lcd.refresh();
+    wait(0.1);
+
+    lcd.setPixel(finish_position.x + 3, finish_position.y, false);
+    lcd.refresh();
+    wait(0.1);
+
+    lcd.setPixel(finish_position.x + 3, finish_position.y - 1, false);
+    lcd.setPixel(finish_position.x + 3, finish_position.y + 2);
+    lcd.setPixel(finish_position.x + 3, finish_position.y + 1);
+    lcd.setPixel(finish_position.x + 3, finish_position.y);
+    lcd.setPixel(finish_position.x + 2, finish_position.y + 1, false);
+    lcd.setPixel(finish_position.x + 1, finish_position.y + 1);
+    lcd.setPixel(finish_position.x, finish_position.y, false);
+    lcd.setPixel(finish_position.x, finish_position.y + 1, false);
+    lcd.setPixel(finish_position.x, finish_position.y + 2, false);
+    lcd.refresh();
+    wait(0.1);
+
+    lcd.setPixel(finish_position.x + 1, finish_position.y, false);
+    lcd.setPixel(finish_position.x + 1, finish_position.y + 1, false);
+    lcd.setPixel(finish_position.x + 1, finish_position.y + 2, false);
+    lcd.setPixel(finish_position.x + 2, finish_position.y + 1);
+    lcd.setPixel(finish_position.x + 3, finish_position.y + 1, false);
+    lcd.refresh();
+    wait(0.1);
+
+    lcd.setPixel(finish_position.x + 2, finish_position.y, false);
+    lcd.setPixel(finish_position.x + 2, finish_position.y + 1, false);
+    lcd.setPixel(finish_position.x + 2, finish_position.y + 2, false);
+    lcd.setPixel(finish_position.x + 3, finish_position.y + 1);
+    lcd.refresh();
+    wait(0.1);
+
+    lcd.setPixel(finish_position.x + 3, finish_position.y, false);
+    lcd.setPixel(finish_position.x + 3, finish_position.y + 1, false);
+    lcd.setPixel(finish_position.x + 3, finish_position.y + 2, false);
+    lcd.setPixel(finish_position.x + 3, finish_position.y - 1);
+    lcd.refresh();
+    wait(0.1);
+
+    lcd.setPixel(finish_position.x + 3, finish_position.y);
+    lcd.refresh();
+    wait(0.1);
+
+    lcd.setPixel(finish_position.x + 3, finish_position.y + 1);
+    lcd.refresh();
+    wait(0.1);
+
+    lcd.setPixel(finish_position.x + 3, finish_position.y + 2);
+    lcd.refresh();
+    wait(0.1);
+}
+