Initial publish
Dependencies: mbed
Fork of el17dg by
tutorial/tutorial.cpp@29:579e00b7f118, 2019-04-15 (annotated)
- 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?
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 | |
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 | } |