Dependencies: mbed
SplashScreen/Splash.cpp@20:c697902b844f, 2020-05-24 (annotated)
- 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?
User | Revision | Line number | New 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 | } |