ELEC2645 (2018/19) / Mbed 2 deprecated el17dg

Dependencies:   mbed

Fork of el17dg by Dmitrijs Griskovs

Committer:
Noximilien
Date:
Tue Apr 23 18:18:57 2019 +0000
Revision:
31:becb8f6bf7b7
Parent:
30:d454d0cb72bc
Child:
39:ca77a6d574e6
Have changed comments structure as well as the content. Finished intro music. Have cleaned a code in some places to make it readable.

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