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
Diff: Animation/Animation.cpp
- Revision:
- 6:33fd1797beb4
- Parent:
- 5:158e2951654b
- Child:
- 7:b54323241435
--- a/Animation/Animation.cpp Sun Apr 30 22:51:35 2017 +0000 +++ b/Animation/Animation.cpp Mon May 01 22:47:46 2017 +0000 @@ -1,35 +1,206 @@ -#include "mbed.h" -#include "N5110.h" -#include "Gamepad.h" -#include "Player.h" -#include "GameEngine.h" +#include "Animation.h" + +Animation::Animation() +{ + +} -N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11); -Serial pc(USBTX, USBRX); // tx, rx -Gamepad pad; -GameEngine game; -Player player; +Animation::~Animation() +{ -void update_screen(); +} -int main() +void Animation::spawn(N5110 &lcd, intVector2D starting_position) { - lcd.init(); - pad.init(); + if (spawnCycle == 0) + { + lcd.setPixel(starting_position.x + 1, starting_position.y - 1, false); + lcd.refresh(); + wait(0.1); - lcd.normalMode(); - lcd.setBrightness(1); - game.init(4); - lcd.refresh(); + 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); - while(1) { // loop forever + 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); - game.read_input(pad,pc); - game.update(pad, pc, lcd); - game.draw(lcd); + 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); - wait(1.0f/10); // 10 fps + 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); +} + +/* +void GameEngine::draw_death_animation(N5110 &lcd) +{ + int y = 0; + int animation_width = 84; + int animation_height = 48; + + for (int x = 0; x < 23; x++) { + lcd.drawRect(x, y, animation_width, animation_height, FILL_TRANSPARENT); + lcd.refresh(); + y++; + animation_width = animation_width - 2; + animation_height = animation_height - 2; + wait(0.03); + } +} +*/ \ No newline at end of file