Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
main.cpp@4:0f2006e9c8f8, 2019-05-09 (annotated)
- Committer:
- jiaxinZHOU
- Date:
- Thu May 09 02:37:14 2019 +0000
- Revision:
- 4:0f2006e9c8f8
- Parent:
- 1:538386e72e40
final
Who changed what in which revision?
User | Revision | Line number | New 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 | } |