ELEC2645 (2018/19) / Mbed 2 deprecated el17dg

Dependencies:   mbed

Fork of el17dg by Dmitrijs Griskovs

Committer:
Noximilien
Date:
Wed Apr 10 15:42:10 2019 +0000
Revision:
28:35af3843de8f
Parent:
27:f05f4e738ba9
Child:
29:579e00b7f118
Moved starSpawnDelay to stars.h. Made enemies move y-direction as the game score increase. Added more comments. Cleaned the code a bit. Changed struct to gameObject in the main.cpp. Made some functions less than 20 lines.

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 24:0570cb4b92d7 6
Noximilien 24:0570cb4b92d7 7
Noximilien 27:f05f4e738ba9 8 const int total_pages = 7;
Noximilien 24:0570cb4b92d7 9 const float time_delay = 100;
Noximilien 24:0570cb4b92d7 10
Noximilien 24:0570cb4b92d7 11 Tutorial::Tutorial() {
Noximilien 24:0570cb4b92d7 12 current_page = 0;
Noximilien 24:0570cb4b92d7 13 }
Noximilien 24:0570cb4b92d7 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 24:0570cb4b92d7 20 if(x_dir.read() > joy_threshold_max_x){
Noximilien 24:0570cb4b92d7 21 current_page -= 1;
Noximilien 24:0570cb4b92d7 22 wait_ms(time_delay);
Noximilien 24:0570cb4b92d7 23 }
Noximilien 24:0570cb4b92d7 24 else if (x_dir.read() < joy_threshold_min_x){
Noximilien 24:0570cb4b92d7 25 current_page += 1;
Noximilien 24:0570cb4b92d7 26 wait_ms(time_delay);
Noximilien 24:0570cb4b92d7 27 }
Noximilien 24:0570cb4b92d7 28 if (current_page < 0) {
Noximilien 24:0570cb4b92d7 29 current_page += total_pages;
Noximilien 24:0570cb4b92d7 30 }
Noximilien 24:0570cb4b92d7 31 if (current_page >= total_pages) {
Noximilien 24:0570cb4b92d7 32 current_page -= total_pages;
Noximilien 24:0570cb4b92d7 33 }
Noximilien 24:0570cb4b92d7 34
Noximilien 24:0570cb4b92d7 35
Noximilien 24:0570cb4b92d7 36 bool back_to_menu = false;
Noximilien 24:0570cb4b92d7 37
Noximilien 24:0570cb4b92d7 38 if (current_page == 0){
Noximilien 24:0570cb4b92d7 39 lcd.printString("X - shoot",0,1);
Noximilien 24:0570cb4b92d7 40 lcd.printString("START - Pause",0,2);
Noximilien 24:0570cb4b92d7 41 lcd.printString("JOYSTICK - is ",0,3);
Noximilien 24:0570cb4b92d7 42 lcd.printString("ship movement",0,4);
Noximilien 24:0570cb4b92d7 43 }
Noximilien 24:0570cb4b92d7 44
Noximilien 24:0570cb4b92d7 45 else if (current_page == 1){
Noximilien 24:0570cb4b92d7 46 lcd.printString("Evade enemy ",0,1);
Noximilien 24:0570cb4b92d7 47 lcd.printString("shots and",0,2);
Noximilien 24:0570cb4b92d7 48 lcd.printString("don't let ",0,3);
Noximilien 24:0570cb4b92d7 49 lcd.printString("them pass.",0,4);
Noximilien 24:0570cb4b92d7 50 }
Noximilien 24:0570cb4b92d7 51
Noximilien 24:0570cb4b92d7 52 else if (current_page == 2){
Noximilien 27:f05f4e738ba9 53 lcd.printString("Your health is",0,1);
Noximilien 27:f05f4e738ba9 54 lcd.printString("shown below",0,2);
Noximilien 27:f05f4e738ba9 55 lcd.printString("the screen ",0,3);
Noximilien 27:f05f4e738ba9 56 lcd.printString("Its LEDs. ",0,4);
Noximilien 27:f05f4e738ba9 57 }
Noximilien 27:f05f4e738ba9 58
Noximilien 27:f05f4e738ba9 59 else if (current_page == 3){
Noximilien 24:0570cb4b92d7 60 lcd.printString("Also. ",0,1);
Noximilien 24:0570cb4b92d7 61 lcd.printString("Kill the ",5,2);
Noximilien 24:0570cb4b92d7 62 lcd.printString("Enemies!!! ",10,3);
Noximilien 24:0570cb4b92d7 63 }
Noximilien 24:0570cb4b92d7 64
Noximilien 27:f05f4e738ba9 65 else if (current_page == 4){
Noximilien 27:f05f4e738ba9 66 lcd.printString("foe died= 30",0,1);
Noximilien 27:f05f4e738ba9 67 lcd.printString("miss shot= -10",0,2);
Noximilien 28:35af3843de8f 68 lcd.printString("foe left= -50",0,3);
Noximilien 27:f05f4e738ba9 69 lcd.printString("Be careful ",10,4);
Noximilien 27:f05f4e738ba9 70 }
Noximilien 27:f05f4e738ba9 71
Noximilien 27:f05f4e738ba9 72 else if (current_page == 5){
Noximilien 27:f05f4e738ba9 73 lcd.printString("As your score",0,1);
Noximilien 27:f05f4e738ba9 74 lcd.printString("increase, so ",0,2);
Noximilien 27:f05f4e738ba9 75 lcd.printString("does the game ",0,3);
Noximilien 27:f05f4e738ba9 76 lcd.printString("difficulty ",10,4);
Noximilien 27:f05f4e738ba9 77 }
Noximilien 27:f05f4e738ba9 78
Noximilien 27:f05f4e738ba9 79 else if (current_page == 6){
Noximilien 27:f05f4e738ba9 80 lcd.printString("Good Luck!!! ",0,3);
Noximilien 27:f05f4e738ba9 81 }
Noximilien 27:f05f4e738ba9 82
Noximilien 24:0570cb4b92d7 83 char buffer[1];
Noximilien 24:0570cb4b92d7 84 sprintf(buffer,"page #%i", current_page);
Noximilien 24:0570cb4b92d7 85 lcd.printString(buffer,20,0);
Noximilien 24:0570cb4b92d7 86
Noximilien 24:0570cb4b92d7 87 lcd.drawSpriteOnTop(right_arrow_pos_x, arrows_pos_y, 7, 10, (int *)tutorialArrowRight);
Noximilien 24:0570cb4b92d7 88 lcd.drawSpriteOnTop(left_arrow_pos_x, arrows_pos_y, 7, 10, (int *)tutorialArrowLeft);
Noximilien 24:0570cb4b92d7 89 lcd.printString("Push B to Exit",0,5);
Noximilien 24:0570cb4b92d7 90
Noximilien 24:0570cb4b92d7 91 if (gamepad.check_event(gamepad.B_PRESSED)){
Noximilien 27:f05f4e738ba9 92 gamepad.check_event(gamepad.B_PRESSED);
Noximilien 24:0570cb4b92d7 93 back_to_menu = true;
Noximilien 24:0570cb4b92d7 94 }
Noximilien 24:0570cb4b92d7 95 return back_to_menu;
Noximilien 24:0570cb4b92d7 96
Noximilien 24:0570cb4b92d7 97 }