Initial publish
Dependencies: mbed
Fork of el17dg by
tutorial/tutorial.cpp@40:e3bbda7444fa, 2019-05-07 (annotated)
- 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?
User | Revision | Line number | New 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 |