Ikenna Adrian Ozoemena 201157039
Dependencies: mbed
main.cpp@53:3fdc4486f672, 2019-05-09 (annotated)
- 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?
User | Revision | Line number | New 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 | } |