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
Fork of el17dg by
tutorial/tutorial.cpp@31:becb8f6bf7b7, 2019-04-23 (annotated)
- 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?
| 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 | 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 |
