ELEC2645 (2018/19) / Mbed 2 deprecated el18jz_

Dependencies:   mbed

Committer:
jiaxinZHOU
Date:
Thu May 09 02:37:14 2019 +0000
Revision:
4:0f2006e9c8f8
Parent:
1:538386e72e40
final

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jiaxinZHOU 0:07c4fef6c0af 1 /*
jiaxinZHOU 0:07c4fef6c0af 2 ELEC2645 Embedded Systems Project
jiaxinZHOU 0:07c4fef6c0af 3 School of Electronic & Electrical Engineering
jiaxinZHOU 0:07c4fef6c0af 4 University of Leeds
jiaxinZHOU 0:07c4fef6c0af 5
jiaxinZHOU 0:07c4fef6c0af 6 Name: Jiaxin Zhou
jiaxinZHOU 0:07c4fef6c0af 7 Username: Jiaxin Zhou
jiaxinZHOU 0:07c4fef6c0af 8 Student ID Number: 201282650
jiaxinZHOU 0:07c4fef6c0af 9 Date:16/04/2019
jiaxinZHOU 0:07c4fef6c0af 10
jiaxinZHOU 0:07c4fef6c0af 11 */
jiaxinZHOU 0:07c4fef6c0af 12
jiaxinZHOU 0:07c4fef6c0af 13 #include "mbed.h"
jiaxinZHOU 0:07c4fef6c0af 14 #include "Gamepad.h"
jiaxinZHOU 0:07c4fef6c0af 15 #include "N5110.h"
jiaxinZHOU 0:07c4fef6c0af 16 #include "Move.h"
jiaxinZHOU 0:07c4fef6c0af 17 #include "Menu.h"
jiaxinZHOU 1:538386e72e40 18 /** @file main.cpp
jiaxinZHOU 1:538386e72e40 19 * @brief This file is used to callback all functions.
jiaxinZHOU 1:538386e72e40 20 */
jiaxinZHOU 0:07c4fef6c0af 21
jiaxinZHOU 0:07c4fef6c0af 22 N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
jiaxinZHOU 0:07c4fef6c0af 23 Gamepad pad;
jiaxinZHOU 0:07c4fef6c0af 24 Move move;
jiaxinZHOU 0:07c4fef6c0af 25 Menu menu;
jiaxinZHOU 0:07c4fef6c0af 26
jiaxinZHOU 0:07c4fef6c0af 27 void initial();
jiaxinZHOU 0:07c4fef6c0af 28 void welcome();
jiaxinZHOU 0:07c4fef6c0af 29 void render();
jiaxinZHOU 0:07c4fef6c0af 30 void menus(N5110 &lcd);
jiaxinZHOU 0:07c4fef6c0af 31 int input(int sel,Gamepad &pad);
jiaxinZHOU 0:07c4fef6c0af 32
jiaxinZHOU 1:538386e72e40 33 ///////////// MAIN.CPP ////////////////
jiaxinZHOU 0:07c4fef6c0af 34 int main () {
jiaxinZHOU 4:0f2006e9c8f8 35 int fps = 0; // initial fps, fps will be update by function menu.difficulty(lcd,pad).
jiaxinZHOU 0:07c4fef6c0af 36 initial();
jiaxinZHOU 0:07c4fef6c0af 37 welcome();
jiaxinZHOU 4:0f2006e9c8f8 38 menu.menus(lcd,pad);// settings or start game
jiaxinZHOU 0:07c4fef6c0af 39 fps = menu.difficulty(lcd,pad);
jiaxinZHOU 0:07c4fef6c0af 40 render();
jiaxinZHOU 4:0f2006e9c8f8 41 move.getfood(); // generate food
jiaxinZHOU 0:07c4fef6c0af 42 while(1) {
jiaxinZHOU 4:0f2006e9c8f8 43
jiaxinZHOU 4:0f2006e9c8f8 44 move.eatfood(); //check is food is hit by snake head, if yes , generate a new one
jiaxinZHOU 0:07c4fef6c0af 45 move.update(pad);
jiaxinZHOU 0:07c4fef6c0af 46 move.updatebody();
jiaxinZHOU 0:07c4fef6c0af 47
jiaxinZHOU 0:07c4fef6c0af 48 render();
jiaxinZHOU 0:07c4fef6c0af 49 move.die(lcd,pad);
jiaxinZHOU 0:07c4fef6c0af 50 wait(1.0f/fps);
jiaxinZHOU 0:07c4fef6c0af 51 }
jiaxinZHOU 0:07c4fef6c0af 52
jiaxinZHOU 0:07c4fef6c0af 53
jiaxinZHOU 0:07c4fef6c0af 54 }
jiaxinZHOU 0:07c4fef6c0af 55
jiaxinZHOU 0:07c4fef6c0af 56 void initial() {
jiaxinZHOU 0:07c4fef6c0af 57 lcd.init();
jiaxinZHOU 0:07c4fef6c0af 58 pad.init();
jiaxinZHOU 0:07c4fef6c0af 59 move.initial();
jiaxinZHOU 0:07c4fef6c0af 60 }
jiaxinZHOU 0:07c4fef6c0af 61
jiaxinZHOU 0:07c4fef6c0af 62 void render()
jiaxinZHOU 0:07c4fef6c0af 63 {
jiaxinZHOU 0:07c4fef6c0af 64 // clear screen, re-draw and refresh
jiaxinZHOU 0:07c4fef6c0af 65 lcd.clear();
jiaxinZHOU 0:07c4fef6c0af 66 move.onlcd(lcd);
jiaxinZHOU 0:07c4fef6c0af 67 lcd.refresh();
jiaxinZHOU 0:07c4fef6c0af 68 }
jiaxinZHOU 0:07c4fef6c0af 69
jiaxinZHOU 0:07c4fef6c0af 70 void welcome() {
jiaxinZHOU 0:07c4fef6c0af 71 lcd.printString(" snake! ",0,1);
jiaxinZHOU 4:0f2006e9c8f8 72 lcd.printString("( Press Start)",0,4);
jiaxinZHOU 0:07c4fef6c0af 73 lcd.refresh();
jiaxinZHOU 0:07c4fef6c0af 74
jiaxinZHOU 0:07c4fef6c0af 75 while ( pad.check_event(Gamepad::START_PRESSED) == false) {
jiaxinZHOU 0:07c4fef6c0af 76 pad.leds_on();
jiaxinZHOU 0:07c4fef6c0af 77 wait(0.1);
jiaxinZHOU 0:07c4fef6c0af 78 pad.leds_off();
jiaxinZHOU 0:07c4fef6c0af 79 wait(0.1);
jiaxinZHOU 0:07c4fef6c0af 80 }
jiaxinZHOU 0:07c4fef6c0af 81
jiaxinZHOU 0:07c4fef6c0af 82 }