Dependencies:   mbed

Committer:
KaifK
Date:
Sun May 24 17:40:56 2020 +0000
Revision:
20:c697902b844f
Parent:
15:5bf3f951d337
Child:
25:467d8fd0fec4
music added, high shot bug fixed

Who changed what in which revision?

UserRevisionLine numberNew contents of line
KaifK 3:f86c1cf90d0d 1 #include "Splash.h"
KaifK 3:f86c1cf90d0d 2
KaifK 15:5bf3f951d337 3 int ball_x = 39;
KaifK 15:5bf3f951d337 4 int ball_y = 21;
KaifK 3:f86c1cf90d0d 5
KaifK 9:e6566d09f087 6 Splash::Splash(N5110 &lcd, Ball &ball) {
KaifK 9:e6566d09f087 7 _lcd = &lcd;
KaifK 9:e6566d09f087 8 _ball = &ball;
KaifK 9:e6566d09f087 9 }
KaifK 3:f86c1cf90d0d 10
KaifK 3:f86c1cf90d0d 11 Splash::~Splash() {}
KaifK 3:f86c1cf90d0d 12
KaifK 9:e6566d09f087 13 void Splash::displayInfo() {
KaifK 9:e6566d09f087 14 _lcd->clear(); //clear screen before starting animation
KaifK 9:e6566d09f087 15 _lcd->setContrast(0);
KaifK 3:f86c1cf90d0d 16 //print info
KaifK 9:e6566d09f087 17 _lcd->printString("Kaif Kutchwala",1,1);
KaifK 9:e6566d09f087 18 _lcd->printString("EL18KK",24,2);
KaifK 9:e6566d09f087 19 _lcd->printString("ELEC 2645",16,3);
KaifK 9:e6566d09f087 20 _lcd->printString("201267448",15,4);
KaifK 9:e6566d09f087 21 _lcd->refresh();
KaifK 3:f86c1cf90d0d 22 //slowly increase contrast to create fade-in animation
KaifK 9:e6566d09f087 23 contrast_slide();
KaifK 3:f86c1cf90d0d 24 wait(1);
KaifK 9:e6566d09f087 25 _lcd->clear(); //clear screen after animation
KaifK 3:f86c1cf90d0d 26 }
KaifK 3:f86c1cf90d0d 27
KaifK 9:e6566d09f087 28 void Splash::playIntro() {
KaifK 9:e6566d09f087 29 _lcd->clear();
KaifK 9:e6566d09f087 30 _lcd->setContrast(0);
KaifK 9:e6566d09f087 31 draw_name();
KaifK 15:5bf3f951d337 32 _ball->drawBall(ball_x, ball_y, 6);
KaifK 9:e6566d09f087 33 contrast_slide();
KaifK 4:08a0ff6668df 34 wait(1);
KaifK 9:e6566d09f087 35 player_enter_animation();
KaifK 9:e6566d09f087 36 kick_animation();
KaifK 9:e6566d09f087 37 shot_animation();
KaifK 9:e6566d09f087 38 _lcd->refresh();
KaifK 20:c697902b844f 39 wait(1);
KaifK 9:e6566d09f087 40 _lcd->clear();
KaifK 4:08a0ff6668df 41 }
KaifK 9:e6566d09f087 42 void Splash::drawLogo(int x, int y) {
KaifK 9:e6566d09f087 43 _lcd->drawSprite(x,y,15,9,(int*)letter_S);
KaifK 9:e6566d09f087 44 _lcd->drawSprite((x+9),y,15,9,(int*)letter_h);//+9
KaifK 15:5bf3f951d337 45 _ball->drawBall((x+24),(y+7), 6);//+9 +12
KaifK 15:5bf3f951d337 46 _ball->drawBall((x+38),(y+7), 6);//+32 +3
KaifK 9:e6566d09f087 47 _lcd->drawSprite((x+47),y,15,9,(int*)letter_t);//+47
KaifK 4:08a0ff6668df 48 }
KaifK 9:e6566d09f087 49 void Splash::draw_name() {
KaifK 9:e6566d09f087 50 _lcd->drawSprite(15,14,15,9,(int*)letter_S);
KaifK 9:e6566d09f087 51 _lcd->drawSprite(24,14,15,9,(int*)letter_h);
KaifK 15:5bf3f951d337 52 _ball->drawBall(53, 21, 6);
KaifK 9:e6566d09f087 53 _lcd->drawSprite(62,14,15,9,(int*)letter_t);
KaifK 9:e6566d09f087 54 _lcd->printString("Game by",21,4);
KaifK 9:e6566d09f087 55 _lcd->printString("Kaif Kutchwala",0,5);
KaifK 4:08a0ff6668df 56 }
KaifK 4:08a0ff6668df 57
KaifK 9:e6566d09f087 58 void Splash::contrast_slide(){
KaifK 9:e6566d09f087 59 for(float contrast = 0.40f; contrast < 0.51f; contrast += 0.01f) {
KaifK 9:e6566d09f087 60 _lcd->setContrast(contrast);
KaifK 4:08a0ff6668df 61 //printf("Contrast = %.2f \n",contrast);
KaifK 9:e6566d09f087 62 _lcd->refresh();
KaifK 4:08a0ff6668df 63 wait_ms(100);
KaifK 4:08a0ff6668df 64 }
KaifK 4:08a0ff6668df 65 }
KaifK 9:e6566d09f087 66 void Splash::player_enter_animation() {
KaifK 8:5ede90f99a27 67 int sprite_X = 25;
KaifK 8:5ede90f99a27 68 int sprite_Y = -10;
KaifK 8:5ede90f99a27 69 while(sprite_X != 35 && sprite_Y != 0){
KaifK 9:e6566d09f087 70 _lcd->clear(); //clear screen before starting animation
KaifK 9:e6566d09f087 71 _lcd->drawSprite(sprite_X,sprite_Y,20,15,(int*)player_fsm[0]);
KaifK 9:e6566d09f087 72 draw_name();
KaifK 15:5bf3f951d337 73 _ball->drawBall(ball_x,ball_y, 6);
KaifK 8:5ede90f99a27 74 //printf("%d \n",sprite_X);
KaifK 8:5ede90f99a27 75 //printf("%d \n",sprite_Y);
KaifK 9:e6566d09f087 76 _lcd->refresh();
KaifK 8:5ede90f99a27 77 sprite_X++;
KaifK 8:5ede90f99a27 78 sprite_Y++;
KaifK 8:5ede90f99a27 79 wait(0.1);
KaifK 8:5ede90f99a27 80 }
KaifK 8:5ede90f99a27 81 }
KaifK 9:e6566d09f087 82 void Splash::kick_animation() {
KaifK 4:08a0ff6668df 83 int state = 0;
KaifK 4:08a0ff6668df 84 while(state < 3) {
KaifK 3:f86c1cf90d0d 85 switch(state) {
KaifK 3:f86c1cf90d0d 86 case 0:
KaifK 3:f86c1cf90d0d 87 state = 1;
KaifK 3:f86c1cf90d0d 88 break;
KaifK 3:f86c1cf90d0d 89 case 1:
KaifK 3:f86c1cf90d0d 90 state = 2;
KaifK 3:f86c1cf90d0d 91 break;
KaifK 3:f86c1cf90d0d 92 case 2:
KaifK 3:f86c1cf90d0d 93 state = 3;
KaifK 3:f86c1cf90d0d 94 break;
KaifK 3:f86c1cf90d0d 95 case 3:
KaifK 3:f86c1cf90d0d 96 state = 0;
KaifK 3:f86c1cf90d0d 97 break;
KaifK 3:f86c1cf90d0d 98 default:
KaifK 3:f86c1cf90d0d 99 error("Invalid state");
KaifK 3:f86c1cf90d0d 100 break;
KaifK 3:f86c1cf90d0d 101 }
KaifK 3:f86c1cf90d0d 102 }
KaifK 9:e6566d09f087 103 _lcd->drawSprite(35,0,20,15,(int*)player_fsm[state]);
KaifK 9:e6566d09f087 104 draw_name();
KaifK 15:5bf3f951d337 105 _ball->drawBall(ball_x,ball_y, 6);
KaifK 9:e6566d09f087 106 _lcd->refresh();
KaifK 9:e6566d09f087 107 _lcd->clear();
KaifK 4:08a0ff6668df 108 wait(0.1);
KaifK 4:08a0ff6668df 109 }
KaifK 9:e6566d09f087 110 void Splash::shot_animation() {
KaifK 3:f86c1cf90d0d 111 while(ball_x != -7 && ball_y != 48){
KaifK 9:e6566d09f087 112 _lcd->drawSprite(35,0,20,15,(int*)player_fsm[4]);
KaifK 9:e6566d09f087 113 draw_name();
KaifK 15:5bf3f951d337 114 _ball->drawBall(ball_x, ball_y, 6);
KaifK 9:e6566d09f087 115 _lcd->refresh();
KaifK 9:e6566d09f087 116 _lcd->clear();
KaifK 3:f86c1cf90d0d 117 ball_x--;
KaifK 3:f86c1cf90d0d 118 ball_y++;
KaifK 3:f86c1cf90d0d 119 wait_ms(30);
KaifK 20:c697902b844f 120 }
KaifK 3:f86c1cf90d0d 121 }