ELEC2645 (2018/19) / Mbed 2 deprecated 2645_Project_SiutingWong201186503

Dependencies:   mbed

Revision:
0:fd8eda608206
Child:
1:f09ff0ed98fd
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed May 08 18:50:21 2019 +0000
@@ -0,0 +1,82 @@
+/*
+ELEC2645 Embedded Systems Project
+School of Electronic & Electrical Engineering
+University of Leeds
+Name: Siuting Wong
+Username: Siuting Wong
+Student ID Number: 201186503
+Date: 06/05/2019
+*/
+///////// pre-processor directives ////////
+#include "mbed.h"
+#include "Gamepad.h"
+#include "N5110.h"
+#include "Engine.h"
+
+#define WALL_WIDTH 2
+#define WALL_GAP 8
+#define AVENGER_SIZE 2
+#define STONE_SIZE 1
+#define SPEED 3
+
+/////////////// structs /////////////////
+struct UserInput {
+    Direction d;
+    float mag;
+};
+/////////////// objects ///////////////
+N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
+Gamepad pad;
+Engine eng;
+
+///////////// prototypes ///////////////
+void init();
+void update_game(UserInput input);
+void render();
+void welcome();
+
+
+///////////// functions ////////////////
+int main() {
+    int fps = 8;
+    
+    init();     // initialise and then display welcome screen...
+    welcome();
+    render();
+    wait(1.0f/fps);  // and wait for one frame period
+    
+    while (1) {
+        eng.read_input(pad);
+        eng.update(pad);
+        render();
+        wait(1.0f/fps);
+    }
+}
+
+void init() {
+    
+    // need to initialise LCD and Gamepad 
+    lcd.init();
+    pad.init();
+     
+    // initialise the game with correct ball and paddle sizes
+    eng.init(WALL_WIDTH,WALL_HEIGHT,AVENGER_SIZE,STONE_SIZE,SPEED);
+}
+
+void welcome() {
+    
+    while ( pad.check_event(Gamepad::START_PRESSED) == false) {
+        lcd.clear();
+        lcd.printString("Eternity Stone",0,1);
+        lcd.refresh();
+        wait(0.1);
+    }
+}
+
+void render() {
+    
+    // clear screen, re-draw and refresh
+    lcd.clear();  
+    eng.draw(lcd);
+    lcd.refresh();
+}
\ No newline at end of file