Ikenna Adrian Ozoemena 201157039
Dependencies: mbed
main.cpp@13:e114d362186d, 2019-04-10 (annotated)
- Committer:
- ikenna1
- Date:
- Wed Apr 10 12:04:07 2019 +0000
- Revision:
- 13:e114d362186d
- Parent:
- 12:47578eb9ea73
- Child:
- 14:88ca5b1a111a
Can now switch ships and border if fixed;
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 | 3:f9cd1a38d5c6 | 11 | //______________pre-processor directives________________________________________ |
ikenna1 | 2:66a4e5d7a7cd | 12 | #include "mbed.h" |
ikenna1 | 2:66a4e5d7a7cd | 13 | #include "Gamepad.h" |
ikenna1 | 2:66a4e5d7a7cd | 14 | #include "N5110.h" |
ikenna1 | 8:87a845b8575e | 15 | #include "RosenEngine.h" |
ikenna1 | 9:241a1a7d8527 | 16 | #include "Menu.h" |
ikenna1 | 3:f9cd1a38d5c6 | 17 | |
ikenna1 | 3:f9cd1a38d5c6 | 18 | //_______________objects________________________________________________________ |
ikenna1 | 3:f9cd1a38d5c6 | 19 | N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11); |
ikenna1 | 3:f9cd1a38d5c6 | 20 | Gamepad pad; |
ikenna1 | 9:241a1a7d8527 | 21 | RosenEngine rosen; |
ikenna1 | 9:241a1a7d8527 | 22 | Menu menu; |
ikenna1 | 3:f9cd1a38d5c6 | 23 | |
ikenna1 | 3:f9cd1a38d5c6 | 24 | //_______________prototypes_____________________________________________________ |
ikenna1 | 3:f9cd1a38d5c6 | 25 | void init(); |
ikenna1 | 3:f9cd1a38d5c6 | 26 | void welcome(); |
ikenna1 | 9:241a1a7d8527 | 27 | void render(); |
ikenna1 | 12:47578eb9ea73 | 28 | void ship_select(); |
ikenna1 | 3:f9cd1a38d5c6 | 29 | |
ikenna1 | 3:f9cd1a38d5c6 | 30 | //_______________functions______________________________________________________ |
ikenna1 | 3:f9cd1a38d5c6 | 31 | int main() |
ikenna1 | 3:f9cd1a38d5c6 | 32 | { |
ikenna1 | 10:c33d7593a275 | 33 | int fps = 12; |
ikenna1 | 10:c33d7593a275 | 34 | init(); |
ikenna1 | 9:241a1a7d8527 | 35 | printf("Init function completed...\n"); |
ikenna1 | 3:f9cd1a38d5c6 | 36 | |
ikenna1 | 10:c33d7593a275 | 37 | while(1) { |
ikenna1 | 10:c33d7593a275 | 38 | welcome(); |
ikenna1 | 13:e114d362186d | 39 | //printf("ycursor = %d",rosen.get_ycursor()); |
ikenna1 | 10:c33d7593a275 | 40 | // make it so it works with get_cursor = 16; |
ikenna1 | 10:c33d7593a275 | 41 | |
ikenna1 | 13:e114d362186d | 42 | if(rosen.get_ycursor() == 16) { |
ikenna1 | 10:c33d7593a275 | 43 | while ( pad.check_event(Gamepad::BACK_PRESSED) == false) { |
ikenna1 | 10:c33d7593a275 | 44 | // printf("play...\n"); |
ikenna1 | 10:c33d7593a275 | 45 | rosen.read_input(pad); |
ikenna1 | 10:c33d7593a275 | 46 | rosen.update(pad); |
ikenna1 | 10:c33d7593a275 | 47 | render(); |
ikenna1 | 10:c33d7593a275 | 48 | wait(1.0f/fps); |
ikenna1 | 10:c33d7593a275 | 49 | } |
ikenna1 | 10:c33d7593a275 | 50 | } |
ikenna1 | 13:e114d362186d | 51 | if(rosen.get_ycursor() == 24) { |
ikenna1 | 10:c33d7593a275 | 52 | while ( pad.check_event(Gamepad::BACK_PRESSED) == false) { |
ikenna1 | 12:47578eb9ea73 | 53 | rosen.read_input(pad); |
ikenna1 | 12:47578eb9ea73 | 54 | rosen.update(pad); |
ikenna1 | 12:47578eb9ea73 | 55 | ship_select(); |
ikenna1 | 12:47578eb9ea73 | 56 | wait(1.0f/fps); |
ikenna1 | 13:e114d362186d | 57 | printf("ship = %d\n",rosen.get_xcursor()); |
ikenna1 | 10:c33d7593a275 | 58 | // printf("menu...\n"); |
ikenna1 | 10:c33d7593a275 | 59 | } |
ikenna1 | 9:241a1a7d8527 | 60 | } |
ikenna1 | 3:f9cd1a38d5c6 | 61 | } |
ikenna1 | 3:f9cd1a38d5c6 | 62 | } |
ikenna1 | 1:9835d6304284 | 63 | |
ikenna1 | 3:f9cd1a38d5c6 | 64 | void init() |
ikenna1 | 3:f9cd1a38d5c6 | 65 | { |
ikenna1 | 3:f9cd1a38d5c6 | 66 | // need to initialise LCD and Gamepad |
ikenna1 | 3:f9cd1a38d5c6 | 67 | lcd.init(); |
ikenna1 | 3:f9cd1a38d5c6 | 68 | pad.init(); |
ikenna1 | 9:241a1a7d8527 | 69 | rosen.init(9,6,3,42,41); |
ikenna1 | 3:f9cd1a38d5c6 | 70 | |
ikenna1 | 3:f9cd1a38d5c6 | 71 | } |
ikenna1 | 9:241a1a7d8527 | 72 | void render() |
ikenna1 | 9:241a1a7d8527 | 73 | { |
ikenna1 | 9:241a1a7d8527 | 74 | // clear screen, re-draw and refresh |
ikenna1 | 9:241a1a7d8527 | 75 | lcd.clear(); |
ikenna1 | 9:241a1a7d8527 | 76 | rosen.draw(lcd); |
ikenna1 | 9:241a1a7d8527 | 77 | rosen.get_pos(); |
ikenna1 | 9:241a1a7d8527 | 78 | lcd.refresh(); |
ikenna1 | 9:241a1a7d8527 | 79 | } |
ikenna1 | 12:47578eb9ea73 | 80 | void ship_select() |
ikenna1 | 12:47578eb9ea73 | 81 | { |
ikenna1 | 12:47578eb9ea73 | 82 | lcd.clear(); |
ikenna1 | 12:47578eb9ea73 | 83 | rosen.ship_select(lcd); |
ikenna1 | 12:47578eb9ea73 | 84 | rosen.get_pos(); |
ikenna1 | 12:47578eb9ea73 | 85 | lcd.refresh(); |
ikenna1 | 12:47578eb9ea73 | 86 | } |
ikenna1 | 3:f9cd1a38d5c6 | 87 | |
ikenna1 | 3:f9cd1a38d5c6 | 88 | // simple splash screen displayed on start-up |
ikenna1 | 3:f9cd1a38d5c6 | 89 | void welcome() |
ikenna1 | 3:f9cd1a38d5c6 | 90 | { |
ikenna1 | 9:241a1a7d8527 | 91 | while( pad.check_event(Gamepad::A_PRESSED) == false) { |
ikenna1 | 9:241a1a7d8527 | 92 | rosen.title(lcd); |
ikenna1 | 9:241a1a7d8527 | 93 | rosen.read_input(pad); |
ikenna1 | 9:241a1a7d8527 | 94 | rosen.update(pad); |
ikenna1 | 9:241a1a7d8527 | 95 | lcd.refresh(); |
ikenna1 | 9:241a1a7d8527 | 96 | } |
ikenna1 | 9:241a1a7d8527 | 97 | printf("Welcome Function completed...\n"); |
ikenna1 | 3:f9cd1a38d5c6 | 98 | } |