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: SplashScreen/Splash.cpp
- Revision:
- 9:e6566d09f087
- Parent:
- 8:5ede90f99a27
- Child:
- 15:5bf3f951d337
--- a/SplashScreen/Splash.cpp Sun May 17 17:59:30 2020 +0000
+++ b/SplashScreen/Splash.cpp Sun May 17 23:00:04 2020 +0000
@@ -165,80 +165,83 @@
int ball_x = 33;
int ball_y = 17;
-Splash::Splash() {}
+Splash::Splash(N5110 &lcd, Ball &ball) {
+ _lcd = &lcd;
+ _ball = &ball;
+}
Splash::~Splash() {}
-void Splash::displayInfo(N5110 &lcd) {
- lcd.clear(); //clear screen before starting animation
- lcd.setContrast(0);
+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();
+ _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(lcd);
+ contrast_slide();
wait(1);
- lcd.clear(); //clear screen after animation
+ _lcd->clear(); //clear screen after animation
}
-void Splash::playIntro(N5110 &lcd, Ball &ball) {
- lcd.clear();
- lcd.setContrast(0);
- draw_name(lcd,ball);
- ball.setLocation(ball_x,ball_y,lcd);
- contrast_slide(lcd);
+void Splash::playIntro() {
+ _lcd->clear();
+ _lcd->setContrast(0);
+ draw_name();
+ _ball->setLocation(ball_x,ball_y);
+ contrast_slide();
wait(1);
- player_enter_animation(lcd, ball);
- kick_animation(lcd, ball);
- shot_animation(lcd,ball);
- lcd.refresh();
+ player_enter_animation();
+ kick_animation();
+ shot_animation();
+ _lcd->refresh();
wait(2);
- lcd.clear();
+ _lcd->clear();
}
-void Splash::drawLogo(int x, int y, N5110 &lcd, Ball &ball) {
- lcd.drawSprite(x,y,15,9,(int*)letter_S);
- lcd.drawSprite((x+9),y,15,9,(int*)letter_h);//+9
- ball.setLocation((x+18),(y+3),lcd);//+32 +3
- ball.setLocation((x+32),(y+3),lcd);//+32 +3
- lcd.drawSprite((x+47),y,15,9,(int*)letter_t);//+47
+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->setLocation((x+18),(y+3));//+32 +3
+ _ball->setLocation((x+32),(y+3));//+32 +3
+ _lcd->drawSprite((x+47),y,15,9,(int*)letter_t);//+47
}
-void draw_name(N5110 &lcd, Ball &ball) {
- lcd.drawSprite(15,14,15,9,(int*)letter_S);
- lcd.drawSprite(24,14,15,9,(int*)letter_h);
- ball.setLocation(47,17,lcd);
- lcd.drawSprite(62,14,15,9,(int*)letter_t);
- lcd.printString("Game by",21,4);
- lcd.printString("Kaif Kutchwala",0,5);
+void Splash::draw_name() {
+ _lcd->drawSprite(15,14,15,9,(int*)letter_S);
+ _lcd->drawSprite(24,14,15,9,(int*)letter_h);
+ _ball->setLocation(47,17);
+ _lcd->drawSprite(62,14,15,9,(int*)letter_t);
+ _lcd->printString("Game by",21,4);
+ _lcd->printString("Kaif Kutchwala",0,5);
}
-void contrast_slide(N5110 &lcd){
- for(float contrast = 0.40; contrast < 0.51; contrast += 0.01) {
- lcd.setContrast(contrast);
+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();
+ _lcd->refresh();
wait_ms(100);
}
}
-void player_enter_animation(N5110 &lcd, Ball &ball) {
+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(lcd,ball);
- ball.setLocation(ball_x,ball_y,lcd);
+ _lcd->clear(); //clear screen before starting animation
+ _lcd->drawSprite(sprite_X,sprite_Y,20,15,(int*)player_fsm[0]);
+ draw_name();
+ _ball->setLocation(ball_x,ball_y);
//printf("%d \n",sprite_X);
//printf("%d \n",sprite_Y);
- lcd.refresh();
+ _lcd->refresh();
sprite_X++;
sprite_Y++;
wait(0.1);
}
}
-void kick_animation(N5110 &lcd, Ball &ball) {
+void Splash::kick_animation() {
int state = 0;
while(state < 3) {
switch(state) {
@@ -259,20 +262,20 @@
break;
}
}
- lcd.drawSprite(35,0,20,15,(int*)player_fsm[state]);
- draw_name(lcd,ball);
- ball.setLocation(ball_x,ball_y,lcd);
- lcd.refresh();
- lcd.clear();
+ _lcd->drawSprite(35,0,20,15,(int*)player_fsm[state]);
+ draw_name();
+ _ball->setLocation(ball_x,ball_y);
+ _lcd->refresh();
+ _lcd->clear();
wait(0.1);
}
-void shot_animation(N5110 &lcd, Ball &ball) {
+void Splash::shot_animation() {
while(ball_x != -7 && ball_y != 48){
- lcd.drawSprite(35,0,20,15,(int*)player_fsm[4]);
- draw_name(lcd,ball);
- ball.setLocation(ball_x, ball_y,lcd);
- lcd.refresh();
- lcd.clear();
+ _lcd->drawSprite(35,0,20,15,(int*)player_fsm[4]);
+ draw_name();
+ _ball->setLocation(ball_x, ball_y);
+ _lcd->refresh();
+ _lcd->clear();
ball_x--;
ball_y++;
wait_ms(30);