Initial publish

Dependencies:   mbed

Fork of el17dg by Dmitrijs Griskovs

Committer:
Noximilien
Date:
Tue May 07 15:22:35 2019 +0000
Revision:
40:e3bbda7444fa
Parent:
39:ca77a6d574e6
The Final, Submission Version. I have read and agreed to the academic integrity. SID:201160286

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 Tutorial::Tutorial() {
Noximilien 24:0570cb4b92d7 9 current_page = 0;
Noximilien 24:0570cb4b92d7 10 }
Noximilien 24:0570cb4b92d7 11
Noximilien 29:579e00b7f118 12 GameObject arrowLeft;
Noximilien 29:579e00b7f118 13 GameObject arrowRight;
Noximilien 39:ca77a6d574e6 14 GameObject smallStar;
Noximilien 39:ca77a6d574e6 15 GameObject mediumStar;
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 31:becb8f6bf7b7 32 else if (current_page == 7){ tutorialPage7();}
Noximilien 31:becb8f6bf7b7 33 else if (current_page == 8){ tutorialPage8();}
Noximilien 31:becb8f6bf7b7 34 else if (current_page == 9){ tutorialPage9();}
Noximilien 31:becb8f6bf7b7 35 else if (current_page == 10){ tutorialPage10();}
Noximilien 39:ca77a6d574e6 36 else if (current_page == 11){ tutorialPage11();}
Noximilien 29:579e00b7f118 37
Noximilien 29:579e00b7f118 38 bool back_to_menu = false;
Noximilien 29:579e00b7f118 39 if (gamepad.check_event(gamepad.B_PRESSED)){
Noximilien 29:579e00b7f118 40 gamepad.check_event(gamepad.B_PRESSED);
Noximilien 39:ca77a6d574e6 41 gamepad.check_event(gamepad.A_PRESSED);
Noximilien 29:579e00b7f118 42 back_to_menu = true;
Noximilien 29:579e00b7f118 43 }
Noximilien 29:579e00b7f118 44 return back_to_menu;
Noximilien 29:579e00b7f118 45 }
Noximilien 29:579e00b7f118 46
Noximilien 29:579e00b7f118 47 void Tutorial::drawArrowsAndExitButton(){
Noximilien 29:579e00b7f118 48 char buffer[16];
Noximilien 29:579e00b7f118 49 sprintf(buffer,"page #%i", current_page);
Noximilien 29:579e00b7f118 50 lcd.printString(buffer,20,0);
Noximilien 29:579e00b7f118 51
Noximilien 29:579e00b7f118 52 arrowLeft.pos.x = left_arrow_pos_x;
Noximilien 29:579e00b7f118 53 arrowLeft.pos.y = arrows_pos_y;
Noximilien 29:579e00b7f118 54 arrowRight.pos.x = right_arrow_pos_x;
Noximilien 29:579e00b7f118 55 arrowRight.pos.y = arrows_pos_y;
Noximilien 39:ca77a6d574e6 56 smallStar.pos.x = 10;
Noximilien 39:ca77a6d574e6 57 smallStar.pos.y = 10;
Noximilien 39:ca77a6d574e6 58 mediumStar.pos.x = 10;
Noximilien 39:ca77a6d574e6 59 mediumStar.pos.y = 15;
Noximilien 29:579e00b7f118 60
Noximilien 29:579e00b7f118 61 drawSprite(arrowRight.pos, tutorial_arrow_right_sprite);
Noximilien 29:579e00b7f118 62 drawSprite(arrowLeft.pos, tutorial_arrow_left_sprite);
Noximilien 29:579e00b7f118 63 lcd.printString("Push B to Exit",0,5);
Noximilien 29:579e00b7f118 64 }
Noximilien 29:579e00b7f118 65
Noximilien 29:579e00b7f118 66 void Tutorial::turnPages(){
Noximilien 29:579e00b7f118 67 if(x_dir.read() > joy_threshold_max_x){
Noximilien 24:0570cb4b92d7 68 current_page -= 1;
Noximilien 24:0570cb4b92d7 69 wait_ms(time_delay);
Noximilien 24:0570cb4b92d7 70 }
Noximilien 24:0570cb4b92d7 71 else if (x_dir.read() < joy_threshold_min_x){
Noximilien 24:0570cb4b92d7 72 current_page += 1;
Noximilien 24:0570cb4b92d7 73 wait_ms(time_delay);
Noximilien 24:0570cb4b92d7 74 }
Noximilien 24:0570cb4b92d7 75 if (current_page < 0) {
Noximilien 24:0570cb4b92d7 76 current_page += total_pages;
Noximilien 24:0570cb4b92d7 77 }
Noximilien 24:0570cb4b92d7 78 if (current_page >= total_pages) {
Noximilien 24:0570cb4b92d7 79 current_page -= total_pages;
Noximilien 29:579e00b7f118 80 }
Noximilien 29:579e00b7f118 81 }
Noximilien 29:579e00b7f118 82
Noximilien 29:579e00b7f118 83 void Tutorial::tutorialPage0(){
Noximilien 24:0570cb4b92d7 84 lcd.printString("X - shoot",0,1);
Noximilien 24:0570cb4b92d7 85 lcd.printString("START - Pause",0,2);
Noximilien 24:0570cb4b92d7 86 lcd.printString("JOYSTICK - is ",0,3);
Noximilien 24:0570cb4b92d7 87 lcd.printString("ship movement",0,4);
Noximilien 29:579e00b7f118 88 }
Noximilien 29:579e00b7f118 89
Noximilien 29:579e00b7f118 90 void Tutorial::tutorialPage1(){
Noximilien 30:d454d0cb72bc 91 lcd.printString("Shield is ",0,1);
Noximilien 30:d454d0cb72bc 92 lcd.printString("Activaed/ ",0,2);
Noximilien 30:d454d0cb72bc 93 lcd.printString("Deactivated by",0,3);
Noximilien 30:d454d0cb72bc 94 lcd.printString("R button ",0,4);
Noximilien 30:d454d0cb72bc 95 }
Noximilien 30:d454d0cb72bc 96
Noximilien 30:d454d0cb72bc 97 void Tutorial::tutorialPage2(){
Noximilien 30:d454d0cb72bc 98 lcd.printString("Shield only",0,1);
Noximilien 30:d454d0cb72bc 99 lcd.printString("blocks blasts.",0,2);
Noximilien 30:d454d0cb72bc 100 lcd.printString("Doesn't block",0,3);
Noximilien 30:d454d0cb72bc 101 lcd.printString("enemy clash",0,4);
Noximilien 30:d454d0cb72bc 102 }
Noximilien 30:d454d0cb72bc 103
Noximilien 30:d454d0cb72bc 104 void Tutorial::tutorialPage3(){
Noximilien 30:d454d0cb72bc 105 lcd.printString("When shield",0,1);
Noximilien 30:d454d0cb72bc 106 lcd.printString("is ON, shooitg",0,2);
Noximilien 30:d454d0cb72bc 107 lcd.printString("is deactivated",0,3);
Noximilien 30:d454d0cb72bc 108 }
Noximilien 30:d454d0cb72bc 109
Noximilien 30:d454d0cb72bc 110 void Tutorial::tutorialPage4(){
Noximilien 30:d454d0cb72bc 111 lcd.printString("You have to",0,1);
Noximilien 30:d454d0cb72bc 112 lcd.printString("switch between",0,2);
Noximilien 30:d454d0cb72bc 113 lcd.printString("offence and",0,3);
Noximilien 30:d454d0cb72bc 114 lcd.printString("deffence",0,4);
Noximilien 30:d454d0cb72bc 115 }
Noximilien 30:d454d0cb72bc 116
Noximilien 30:d454d0cb72bc 117 void Tutorial::tutorialPage5(){
Noximilien 31:becb8f6bf7b7 118 lcd.printString("Evade or block",0,1);
Noximilien 31:becb8f6bf7b7 119 lcd.printString("enemy shots",0,2);
Noximilien 31:becb8f6bf7b7 120 lcd.printString("and don't let ",0,3);
Noximilien 29:579e00b7f118 121 lcd.printString("them pass.",0,4);
Noximilien 29:579e00b7f118 122 }
Noximilien 29:579e00b7f118 123
Noximilien 30:d454d0cb72bc 124 void Tutorial::tutorialPage6(){
Noximilien 27:f05f4e738ba9 125 lcd.printString("Your health is",0,1);
Noximilien 27:f05f4e738ba9 126 lcd.printString("shown below",0,2);
Noximilien 27:f05f4e738ba9 127 lcd.printString("the screen ",0,3);
Noximilien 29:579e00b7f118 128 lcd.printString("It's LEDs. ",0,4);
Noximilien 29:579e00b7f118 129 }
Noximilien 29:579e00b7f118 130
Noximilien 30:d454d0cb72bc 131 void Tutorial::tutorialPage7(){
Noximilien 24:0570cb4b92d7 132 lcd.printString("Kill the ",5,2);
Noximilien 24:0570cb4b92d7 133 lcd.printString("Enemies!!! ",10,3);
Noximilien 29:579e00b7f118 134 }
Noximilien 29:579e00b7f118 135
Noximilien 30:d454d0cb72bc 136 void Tutorial::tutorialPage8(){
Noximilien 27:f05f4e738ba9 137 lcd.printString("foe died= 30",0,1);
Noximilien 27:f05f4e738ba9 138 lcd.printString("miss shot= -10",0,2);
Noximilien 28:35af3843de8f 139 lcd.printString("foe left= -50",0,3);
Noximilien 27:f05f4e738ba9 140 lcd.printString("Be careful ",10,4);
Noximilien 29:579e00b7f118 141 }
Noximilien 29:579e00b7f118 142
Noximilien 30:d454d0cb72bc 143 void Tutorial::tutorialPage9(){
Noximilien 27:f05f4e738ba9 144 lcd.printString("As your score",0,1);
Noximilien 27:f05f4e738ba9 145 lcd.printString("increase, so ",0,2);
Noximilien 27:f05f4e738ba9 146 lcd.printString("does the game ",0,3);
Noximilien 27:f05f4e738ba9 147 lcd.printString("difficulty ",10,4);
Noximilien 29:579e00b7f118 148 }
Noximilien 29:579e00b7f118 149
Noximilien 30:d454d0cb72bc 150 void Tutorial::tutorialPage10(){
Noximilien 39:ca77a6d574e6 151 drawSprite(smallStar.pos, small_star_sprite);
Noximilien 39:ca77a6d574e6 152 drawSprite(mediumStar.pos, medium_star_sprite);
Noximilien 39:ca77a6d574e6 153 lcd.printString("S Star",20,1);
Noximilien 39:ca77a6d574e6 154 lcd.printString("M Star ",20,2);
Noximilien 39:ca77a6d574e6 155 lcd.printString("They do not ",0,3);
Noximilien 39:ca77a6d574e6 156 lcd.printString("hurt you ",30,4);
Noximilien 39:ca77a6d574e6 157 }
Noximilien 39:ca77a6d574e6 158
Noximilien 39:ca77a6d574e6 159 void Tutorial::tutorialPage11(){
Noximilien 27:f05f4e738ba9 160 lcd.printString("Good Luck!!! ",0,3);
Noximilien 30:d454d0cb72bc 161 }
Noximilien 30:d454d0cb72bc 162