ELEC2645 (2018/19) / Mbed 2 deprecated el17dg

Dependencies:   mbed

Fork of el17dg by Dmitrijs Griskovs

Revision:
3:10918b0f7a7d
Parent:
2:ec89189860e0
Child:
4:02c63aaa2df9
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/main.cpp	Thu Feb 28 16:13:06 2019 +0000
@@ -0,0 +1,148 @@
+/*
+ELEC2645 Embedded Systems Project
+School of Electronic & Electrical Engineering
+University of Leeds
+Name: Dmitrijs Griskovs
+Username: el17dg
+Student ID Number: 201160286
+Date: start - 25/02/2019
+*/
+
+
+#include "mbed.h"
+#include "N5110.h"
+#include "Gamepad.h"
+#include "game.h"
+
+
+
+N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
+Gamepad gamepad;
+AnalogIn pot(PTB2);
+
+AnalogIn x_dir(PTB11);
+AnalogIn y_dir(PTB10);
+
+static const unsigned int MAX_LINE_LENGTH = 14;
+
+
+void intro();
+void pointer(int x, int y);
+void pointer_position(int menu_number);
+void ship_movement();
+
+char line_buffer[MAX_LINE_LENGTH];
+
+int menu_number = 0;
+int total_menu_number = 3;
+float time_delay = 100;
+int x_movement = 20;
+int y_movement = 30;
+
+int main(){
+    lcd.init();
+    
+    intro();
+    
+    
+    while(1){
+        
+        lcd.clear();
+        
+        pointer_position(menu_number);
+        
+        if(y_dir.read() > 0.6){
+            menu_number -= 1;
+            wait_ms(time_delay);    
+        }
+        if (y_dir.read() < 0.4){
+            menu_number += 1;
+            wait_ms(time_delay); 
+        }
+        if (menu_number < 0) {
+            menu_number += total_menu_number;
+        }
+        if (menu_number >= total_menu_number) {
+            menu_number -= total_menu_number;
+        }
+        
+        lcd.printString(" Start ",1,2);
+        lcd.printString(" Tutorial",1,3);
+        lcd.printString(" Settings",1,4);
+        sprintf(line_buffer, "%i", gamepad.L_PRESSED);
+        lcd.printString(line_buffer,0,0);
+        
+        if (menu_number == 1 && gamepad.A_PRESSED == 1){
+            ship_movement();
+            game_start(lcd, x_movement, y_movement);   
+        }
+        
+        lcd.refresh();
+        wait_ms(1000/10);
+        
+        
+    }
+    
+    
+    
+}
+
+void intro(){
+    lcd.clear();
+    lcd.printString("  StarBarians",1,1);
+    lcd.refresh();
+    wait(0.5);
+    lcd.printString(" And the quest ",1,2);
+    lcd.printString(" of the Princess Boobeta",1,3);
+    lcd.printString(" Boobeta",1,4);
+    lcd.refresh();
+    wait(0.5);
+}
+
+void pointer(int x, int y){
+   
+   int cursor[84] = {0,0,0,0,1,0,0,0,0,0,1,1,
+                     0,0,1,1,1,1,0,0,0,1,0,0,
+                     0,1,0,0,1,1,1,0,1,0,0,0,
+                     1,1,1,1,1,0,1,1,1,0,1,1,
+                     0,1,0,0,1,1,1,0,1,0,0,0,
+                     0,0,1,1,1,1,0,0,0,1,0,0,
+                     0,0,0,0,1,0,0,0,0,0,1,1};
+                                
+                                
+    lcd.drawSprite(x,y,7,12,cursor);  
+}
+
+void pointer_position(int menu_number){     //32 for 5th row- 25 for 4th row
+    if (menu_number == 0){    
+    pointer(70, 17);
+    }
+    if (menu_number == 1){    
+    pointer(70, 25);
+    }
+    if (menu_number == 2){    
+    pointer(70, 32);
+    }
+}
+
+void ship_movement(){
+    if(y_dir.read() > 0.6){
+        y_movement += 1;
+        //wait_ms(time_delay);    
+    }
+    if (y_dir.read() < 0.4){
+        y_movement -= 1;
+        //wait_ms(time_delay); 
+    }
+    
+    if(x_dir.read() > 0.6){
+        x_movement += 1;
+        //wait_ms(time_delay);    
+    }
+    if (x_dir.read() < 0.4){
+        x_movement -= 1;
+        //wait_ms(time_delay); 
+    }
+    
+}
+