Ikenna Adrian Ozoemena 201157039

Dependencies:   mbed

Committer:
ikenna1
Date:
Thu May 09 14:52:52 2019 +0000
Revision:
53:3fdc4486f672
Parent:
52:29772e31a620
Final Submission

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ikenna1 0:0d446aab48a6 1 /*
ikenna1 0:0d446aab48a6 2 ELEC2645 Embedded Systems Project
ikenna1 0:0d446aab48a6 3 School of Electronic & Electrical Engineering
ikenna1 0:0d446aab48a6 4 University of Leeds
ikenna1 0:0d446aab48a6 5 Name: Ikenna Adrian Ozoemena
ikenna1 0:0d446aab48a6 6 Username: el17aio
ikenna1 0:0d446aab48a6 7 Student ID Number: 201157039
ikenna1 0:0d446aab48a6 8 Date: 20/02/2019
ikenna1 1:9835d6304284 9 */
ikenna1 1:9835d6304284 10
ikenna1 52:29772e31a620 11 #include "main.h"
ikenna1 52:29772e31a620 12 /** @file main.cpp
ikenna1 53:3fdc4486f672 13 * @brief Main file used to run the game using the game engine RosenEngine
ikenna1 52:29772e31a620 14 */
ikenna1 52:29772e31a620 15
ikenna1 52:29772e31a620 16
ikenna1 3:f9cd1a38d5c6 17 //_______________functions______________________________________________________
ikenna1 3:f9cd1a38d5c6 18 int main()
ikenna1 3:f9cd1a38d5c6 19 {
ikenna1 53:3fdc4486f672 20 // adds testing to the main file if it is declared in macros
ikenna1 53:3fdc4486f672 21 #ifdef WITH_TESTING
ikenna1 52:29772e31a620 22 int number_of_failures = run_all_tests();
ikenna1 52:29772e31a620 23
ikenna1 52:29772e31a620 24 if(number_of_failures > 0) return number_of_failures;
ikenna1 53:3fdc4486f672 25 #endif
ikenna1 53:3fdc4486f672 26
ikenna1 53:3fdc4486f672 27 // initialize game objects and engine
ikenna1 10:c33d7593a275 28 init();
ikenna1 10:c33d7593a275 29 while(1) {
ikenna1 10:c33d7593a275 30 welcome();
ikenna1 27:f99249e727fd 31 rosen.reset();
ikenna1 13:e114d362186d 32 if(rosen.get_ycursor() == 16) {
ikenna1 38:4571537238ed 33 while ( pad.check_event(Gamepad::BACK_PRESSED) == false && rosen.dead() == false) {
ikenna1 10:c33d7593a275 34 rosen.read_input(pad);
ikenna1 10:c33d7593a275 35 rosen.update(pad);
ikenna1 10:c33d7593a275 36 render();
ikenna1 10:c33d7593a275 37 wait(1.0f/fps);
ikenna1 38:4571537238ed 38 rosen.timer(fps);
ikenna1 10:c33d7593a275 39 }
ikenna1 10:c33d7593a275 40 }
ikenna1 13:e114d362186d 41 if(rosen.get_ycursor() == 24) {
ikenna1 10:c33d7593a275 42 while ( pad.check_event(Gamepad::BACK_PRESSED) == false) {
ikenna1 12:47578eb9ea73 43 rosen.read_input(pad);
ikenna1 12:47578eb9ea73 44 rosen.update(pad);
ikenna1 12:47578eb9ea73 45 ship_select();
ikenna1 12:47578eb9ea73 46 wait(1.0f/fps);
ikenna1 53:3fdc4486f672 47 }
ikenna1 53:3fdc4486f672 48 }
ikenna1 53:3fdc4486f672 49 if(rosen.get_ycursor() == 32) {
ikenna1 53:3fdc4486f672 50 while ( pad.check_event(Gamepad::BACK_PRESSED) == false) {
ikenna1 53:3fdc4486f672 51 rosen.read_input(pad);
ikenna1 53:3fdc4486f672 52 rosen.update(pad);
ikenna1 53:3fdc4486f672 53 display_help();
ikenna1 53:3fdc4486f672 54 wait(1.0f/fps);
ikenna1 10:c33d7593a275 55 }
ikenna1 9:241a1a7d8527 56 }
ikenna1 3:f9cd1a38d5c6 57 }
ikenna1 3:f9cd1a38d5c6 58 }
ikenna1 1:9835d6304284 59
ikenna1 3:f9cd1a38d5c6 60 void init()
ikenna1 3:f9cd1a38d5c6 61 {
ikenna1 3:f9cd1a38d5c6 62 // need to initialise LCD and Gamepad
ikenna1 3:f9cd1a38d5c6 63 lcd.init();
ikenna1 3:f9cd1a38d5c6 64 pad.init();
ikenna1 9:241a1a7d8527 65 rosen.init(9,6,3,42,41);
ikenna1 35:3341f2bd0408 66 printf("Initializing...\n");
ikenna1 3:f9cd1a38d5c6 67
ikenna1 3:f9cd1a38d5c6 68 }
ikenna1 9:241a1a7d8527 69 void render()
ikenna1 9:241a1a7d8527 70 {
ikenna1 9:241a1a7d8527 71 // clear screen, re-draw and refresh
ikenna1 9:241a1a7d8527 72 lcd.clear();
ikenna1 14:88ca5b1a111a 73 rosen.draw(lcd, pad);
ikenna1 9:241a1a7d8527 74 rosen.get_pos();
ikenna1 9:241a1a7d8527 75 lcd.refresh();
ikenna1 35:3341f2bd0408 76 // printf("Rendering...\n");
ikenna1 9:241a1a7d8527 77 }
ikenna1 12:47578eb9ea73 78 void ship_select()
ikenna1 12:47578eb9ea73 79 {
ikenna1 12:47578eb9ea73 80 lcd.clear();
ikenna1 12:47578eb9ea73 81 rosen.ship_select(lcd);
ikenna1 12:47578eb9ea73 82 rosen.get_pos();
ikenna1 12:47578eb9ea73 83 lcd.refresh();
ikenna1 53:3fdc4486f672 84 // printf("Ship Select...\n");
ikenna1 53:3fdc4486f672 85 }
ikenna1 53:3fdc4486f672 86 void display_help()
ikenna1 53:3fdc4486f672 87 {
ikenna1 53:3fdc4486f672 88 lcd.clear();
ikenna1 53:3fdc4486f672 89 rosen.get_pos();
ikenna1 53:3fdc4486f672 90 rosen.help(lcd);
ikenna1 53:3fdc4486f672 91 lcd.refresh();
ikenna1 53:3fdc4486f672 92 // printf("Ship Select...\n");
ikenna1 12:47578eb9ea73 93 }
ikenna1 3:f9cd1a38d5c6 94
ikenna1 3:f9cd1a38d5c6 95 void welcome()
ikenna1 3:f9cd1a38d5c6 96 {
ikenna1 18:2cc6898de6b2 97 while( pad.check_event(Gamepad::START_PRESSED) == false) {
ikenna1 30:711d722f3cef 98 lcd.clear();
ikenna1 9:241a1a7d8527 99 rosen.title(lcd);
ikenna1 9:241a1a7d8527 100 rosen.read_input(pad);
ikenna1 9:241a1a7d8527 101 lcd.refresh();
ikenna1 9:241a1a7d8527 102 }
ikenna1 53:3fdc4486f672 103 // printf("Welcome Function completed...\n");
ikenna1 3:f9cd1a38d5c6 104 }