Initial publish

Dependencies:   mbed

Fork of el17dg by Dmitrijs Griskovs

Committer:
Noximilien
Date:
Mon Apr 15 12:59:51 2019 +0000
Revision:
29:579e00b7f118
Parent:
28:35af3843de8f
Child:
30:d454d0cb72bc
Added a lot of comments.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Noximilien 24:0570cb4b92d7 1 #include "main.h"
Noximilien 24:0570cb4b92d7 2 #include "menu.h"
Noximilien 24:0570cb4b92d7 3 #include "tutorial.h"
Noximilien 24:0570cb4b92d7 4 #include "constants.h"
Noximilien 24:0570cb4b92d7 5 #include "models.h"
Noximilien 29:579e00b7f118 6 #include "gameobject.h"
Noximilien 24:0570cb4b92d7 7
Noximilien 24:0570cb4b92d7 8
Noximilien 24:0570cb4b92d7 9
Noximilien 24:0570cb4b92d7 10 Tutorial::Tutorial() {
Noximilien 24:0570cb4b92d7 11 current_page = 0;
Noximilien 24:0570cb4b92d7 12 }
Noximilien 24:0570cb4b92d7 13
Noximilien 29:579e00b7f118 14 GameObject arrowLeft;
Noximilien 29:579e00b7f118 15 GameObject arrowRight;
Noximilien 29:579e00b7f118 16
Noximilien 24:0570cb4b92d7 17 /**@brief
Noximilien 24:0570cb4b92d7 18 * This function just displays some strings of the dysplaye to tell the player
Noximilien 24:0570cb4b92d7 19 * how to use the controls and what to do.
Noximilien 24:0570cb4b92d7 20 */
Noximilien 24:0570cb4b92d7 21 bool Tutorial::updateAndWriteTutorial(){
Noximilien 29:579e00b7f118 22 turnPages();
Noximilien 29:579e00b7f118 23 drawArrowsAndExitButton();
Noximilien 29:579e00b7f118 24
Noximilien 29:579e00b7f118 25 if (current_page == 0){ tutorialPage0();}
Noximilien 29:579e00b7f118 26 else if (current_page == 1){ tutorialPage1();}
Noximilien 29:579e00b7f118 27 else if (current_page == 2){ tutorialPage2();}
Noximilien 29:579e00b7f118 28 else if (current_page == 3){ tutorialPage3();}
Noximilien 29:579e00b7f118 29 else if (current_page == 4){ tutorialPage4();}
Noximilien 29:579e00b7f118 30 else if (current_page == 5){ tutorialPage5();}
Noximilien 29:579e00b7f118 31 else if (current_page == 6){ tutorialPage6();}
Noximilien 29:579e00b7f118 32
Noximilien 29:579e00b7f118 33 bool back_to_menu = false;
Noximilien 29:579e00b7f118 34 if (gamepad.check_event(gamepad.B_PRESSED)){
Noximilien 29:579e00b7f118 35 gamepad.check_event(gamepad.B_PRESSED);
Noximilien 29:579e00b7f118 36 back_to_menu = true;
Noximilien 29:579e00b7f118 37 }
Noximilien 29:579e00b7f118 38 return back_to_menu;
Noximilien 29:579e00b7f118 39 }
Noximilien 29:579e00b7f118 40
Noximilien 29:579e00b7f118 41 void Tutorial::drawArrowsAndExitButton(){
Noximilien 29:579e00b7f118 42 char buffer[16];
Noximilien 29:579e00b7f118 43 sprintf(buffer,"page #%i", current_page);
Noximilien 29:579e00b7f118 44 lcd.printString(buffer,20,0);
Noximilien 29:579e00b7f118 45
Noximilien 29:579e00b7f118 46 arrowLeft.pos.x = left_arrow_pos_x;
Noximilien 29:579e00b7f118 47 arrowLeft.pos.y = arrows_pos_y;
Noximilien 29:579e00b7f118 48 arrowRight.pos.x = right_arrow_pos_x;
Noximilien 29:579e00b7f118 49 arrowRight.pos.y = arrows_pos_y;
Noximilien 29:579e00b7f118 50
Noximilien 29:579e00b7f118 51 drawSprite(arrowRight.pos, tutorial_arrow_right_sprite);
Noximilien 29:579e00b7f118 52 drawSprite(arrowLeft.pos, tutorial_arrow_left_sprite);
Noximilien 29:579e00b7f118 53 lcd.printString("Push B to Exit",0,5);
Noximilien 29:579e00b7f118 54 }
Noximilien 29:579e00b7f118 55
Noximilien 29:579e00b7f118 56 void Tutorial::turnPages(){
Noximilien 29:579e00b7f118 57 if(x_dir.read() > joy_threshold_max_x){
Noximilien 24:0570cb4b92d7 58 current_page -= 1;
Noximilien 24:0570cb4b92d7 59 wait_ms(time_delay);
Noximilien 24:0570cb4b92d7 60 }
Noximilien 24:0570cb4b92d7 61 else if (x_dir.read() < joy_threshold_min_x){
Noximilien 24:0570cb4b92d7 62 current_page += 1;
Noximilien 24:0570cb4b92d7 63 wait_ms(time_delay);
Noximilien 24:0570cb4b92d7 64 }
Noximilien 24:0570cb4b92d7 65 if (current_page < 0) {
Noximilien 24:0570cb4b92d7 66 current_page += total_pages;
Noximilien 24:0570cb4b92d7 67 }
Noximilien 24:0570cb4b92d7 68 if (current_page >= total_pages) {
Noximilien 24:0570cb4b92d7 69 current_page -= total_pages;
Noximilien 29:579e00b7f118 70 }
Noximilien 29:579e00b7f118 71 }
Noximilien 29:579e00b7f118 72
Noximilien 29:579e00b7f118 73 void Tutorial::tutorialPage0(){
Noximilien 24:0570cb4b92d7 74 lcd.printString("X - shoot",0,1);
Noximilien 24:0570cb4b92d7 75 lcd.printString("START - Pause",0,2);
Noximilien 24:0570cb4b92d7 76 lcd.printString("JOYSTICK - is ",0,3);
Noximilien 24:0570cb4b92d7 77 lcd.printString("ship movement",0,4);
Noximilien 29:579e00b7f118 78 }
Noximilien 29:579e00b7f118 79
Noximilien 29:579e00b7f118 80 void Tutorial::tutorialPage1(){
Noximilien 24:0570cb4b92d7 81 lcd.printString("Evade enemy ",0,1);
Noximilien 24:0570cb4b92d7 82 lcd.printString("shots and",0,2);
Noximilien 24:0570cb4b92d7 83 lcd.printString("don't let ",0,3);
Noximilien 29:579e00b7f118 84 lcd.printString("them pass.",0,4);
Noximilien 29:579e00b7f118 85 }
Noximilien 29:579e00b7f118 86
Noximilien 29:579e00b7f118 87 void Tutorial::tutorialPage2(){
Noximilien 27:f05f4e738ba9 88 lcd.printString("Your health is",0,1);
Noximilien 27:f05f4e738ba9 89 lcd.printString("shown below",0,2);
Noximilien 27:f05f4e738ba9 90 lcd.printString("the screen ",0,3);
Noximilien 29:579e00b7f118 91 lcd.printString("It's LEDs. ",0,4);
Noximilien 29:579e00b7f118 92 }
Noximilien 29:579e00b7f118 93
Noximilien 29:579e00b7f118 94 void Tutorial::tutorialPage3(){
Noximilien 24:0570cb4b92d7 95 lcd.printString("Kill the ",5,2);
Noximilien 24:0570cb4b92d7 96 lcd.printString("Enemies!!! ",10,3);
Noximilien 29:579e00b7f118 97 }
Noximilien 29:579e00b7f118 98
Noximilien 29:579e00b7f118 99 void Tutorial::tutorialPage4(){
Noximilien 27:f05f4e738ba9 100 lcd.printString("foe died= 30",0,1);
Noximilien 27:f05f4e738ba9 101 lcd.printString("miss shot= -10",0,2);
Noximilien 28:35af3843de8f 102 lcd.printString("foe left= -50",0,3);
Noximilien 27:f05f4e738ba9 103 lcd.printString("Be careful ",10,4);
Noximilien 29:579e00b7f118 104 }
Noximilien 29:579e00b7f118 105
Noximilien 29:579e00b7f118 106 void Tutorial::tutorialPage5(){
Noximilien 27:f05f4e738ba9 107 lcd.printString("As your score",0,1);
Noximilien 27:f05f4e738ba9 108 lcd.printString("increase, so ",0,2);
Noximilien 27:f05f4e738ba9 109 lcd.printString("does the game ",0,3);
Noximilien 27:f05f4e738ba9 110 lcd.printString("difficulty ",10,4);
Noximilien 29:579e00b7f118 111 }
Noximilien 29:579e00b7f118 112
Noximilien 29:579e00b7f118 113 void Tutorial::tutorialPage6(){
Noximilien 27:f05f4e738ba9 114 lcd.printString("Good Luck!!! ",0,3);
Noximilien 29:579e00b7f118 115 }