
Kaif Kutchwala 201267448 ELEC2645 Project
Dependencies: mbed
SplashScreen/Splash.cpp
- Committer:
- KaifK
- Date:
- 2020-05-26
- Revision:
- 31:e1f80d181779
- Parent:
- 25:467d8fd0fec4
File content as of revision 31:e1f80d181779:
#include "Splash.h" int ball_x = 39; int ball_y = 21; Splash::Splash(N5110 &lcd, Ball &ball) { _lcd = &lcd; _ball = &ball; } Splash::~Splash() {} void Splash::displayInfo() { _lcd -> clear(); //clear screen before starting animation _lcd -> setContrast(0); //print info _lcd -> printString("Kaif Kutchwala", 1, 1); _lcd -> printString("EL18KK", 24, 2); _lcd -> printString("ELEC 2645", 16, 3); _lcd -> printString("201267448", 15, 4); _lcd -> refresh(); //slowly increase contrast to create fade-in animation contrast_slide(); wait(1); _lcd -> clear(); //clear screen after animation } void Splash::playIntro() { _lcd -> clear(); _lcd -> setContrast(0); draw_name(); _ball -> drawBall(ball_x, ball_y, 6); contrast_slide(); wait(1); player_enter_animation(); kick_animation(); shot_animation(); _lcd -> refresh(); wait(1); _lcd -> clear(); } void Splash::drawLogo(int x, int y) { _lcd -> drawSprite(x, y, 15, 9, (int * ) letter_S); _lcd -> drawSprite((x + 9), y, 15, 9, (int * ) letter_h); //+9 _ball -> drawBall((x + 24), (y + 7), 6); //+9 +12 _ball -> drawBall((x + 38), (y + 7), 6); //+32 +3 _lcd -> drawSprite((x + 47), y, 15, 9, (int * ) letter_t); //+47 } void Splash::draw_name() { _lcd -> drawSprite(15, 14, 15, 9, (int * ) letter_S); _lcd -> drawSprite(24, 14, 15, 9, (int * ) letter_h); _ball -> drawBall(53, 21, 6); _lcd -> drawSprite(62, 14, 15, 9, (int * ) letter_t); _lcd -> printString("Game by", 21, 4); _lcd -> printString("Kaif Kutchwala", 0, 5); } void Splash::contrast_slide() { for (float contrast = 0.40f ; contrast < 0.51f ; contrast += 0.01f ) { _lcd -> setContrast(contrast); //printf("Contrast = %.2f \n",contrast); _lcd -> refresh(); wait_ms(100); } } void Splash::player_enter_animation() { int sprite_X = 25; int sprite_Y = -10; while (sprite_X != 35 && sprite_Y != 0) { _lcd -> clear(); //clear screen before starting animation _lcd -> drawSprite(sprite_X, sprite_Y, 20, 15, (int * ) player_fsm[0]); draw_name(); _ball -> drawBall(ball_x, ball_y, 6); //printf("%d \n",sprite_X); //printf("%d \n",sprite_Y); _lcd -> refresh(); sprite_X++; sprite_Y++; wait(0.1); } } void Splash::kick_animation() { int state = 0; while (state < 3) { switch (state) { case 0: state = 1; break; case 1: state = 2; break; case 2: state = 3; break; case 3: state = 0; break; default: error("Invalid state"); break; } } _lcd -> drawSprite(35, 0, 20, 15, (int * ) player_fsm[state]); draw_name(); _ball -> drawBall(ball_x, ball_y, 6); _lcd -> refresh(); _lcd -> clear(); wait(0.1); } void Splash::shot_animation() { while (ball_x != -7 && ball_y != 48) { _lcd -> drawSprite(35, 0, 20, 15, (int * ) player_fsm[4]); draw_name(); _ball -> drawBall(ball_x, ball_y, 6); _lcd -> refresh(); _lcd -> clear(); ball_x--; ball_y++; wait_ms(30); } }