Ikenna Adrian Ozoemena 201157039

Dependencies:   mbed

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?

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 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 }