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@1:538386e72e40, 2019-05-08 (annotated)
- Committer:
- jiaxinZHOU
- Date:
- Wed May 08 22:10:38 2019 +0000
- Revision:
- 1:538386e72e40
- Parent:
- 0:07c4fef6c0af
- Child:
- 4:0f2006e9c8f8
2nd e
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 | 0:07c4fef6c0af | 35 | int fps = 1; |
jiaxinZHOU | 0:07c4fef6c0af | 36 | initial(); |
jiaxinZHOU | 0:07c4fef6c0af | 37 | welcome(); |
jiaxinZHOU | 0:07c4fef6c0af | 38 | menu.menus(lcd,pad); |
jiaxinZHOU | 0:07c4fef6c0af | 39 | fps = menu.difficulty(lcd,pad); |
jiaxinZHOU | 0:07c4fef6c0af | 40 | render(); |
jiaxinZHOU | 0:07c4fef6c0af | 41 | move.getfood(); |
jiaxinZHOU | 0:07c4fef6c0af | 42 | while(1) { |
jiaxinZHOU | 0:07c4fef6c0af | 43 | //process_input(); |
jiaxinZHOU | 0:07c4fef6c0af | 44 | //update_game_state(); |
jiaxinZHOU | 0:07c4fef6c0af | 45 | //refresh_display(); |
jiaxinZHOU | 0:07c4fef6c0af | 46 | //wait_ms(1000/fps); |
jiaxinZHOU | 0:07c4fef6c0af | 47 | move.eatfood(); |
jiaxinZHOU | 0:07c4fef6c0af | 48 | move.update(pad); |
jiaxinZHOU | 0:07c4fef6c0af | 49 | move.updatebody(); |
jiaxinZHOU | 0:07c4fef6c0af | 50 | |
jiaxinZHOU | 0:07c4fef6c0af | 51 | render(); |
jiaxinZHOU | 0:07c4fef6c0af | 52 | move.die(lcd,pad); |
jiaxinZHOU | 0:07c4fef6c0af | 53 | wait(1.0f/fps); |
jiaxinZHOU | 0:07c4fef6c0af | 54 | } |
jiaxinZHOU | 0:07c4fef6c0af | 55 | |
jiaxinZHOU | 0:07c4fef6c0af | 56 | |
jiaxinZHOU | 0:07c4fef6c0af | 57 | } |
jiaxinZHOU | 0:07c4fef6c0af | 58 | |
jiaxinZHOU | 0:07c4fef6c0af | 59 | void initial() { |
jiaxinZHOU | 0:07c4fef6c0af | 60 | lcd.init(); |
jiaxinZHOU | 0:07c4fef6c0af | 61 | pad.init(); |
jiaxinZHOU | 0:07c4fef6c0af | 62 | move.initial(); |
jiaxinZHOU | 0:07c4fef6c0af | 63 | } |
jiaxinZHOU | 0:07c4fef6c0af | 64 | |
jiaxinZHOU | 0:07c4fef6c0af | 65 | void render() |
jiaxinZHOU | 0:07c4fef6c0af | 66 | { |
jiaxinZHOU | 0:07c4fef6c0af | 67 | // clear screen, re-draw and refresh |
jiaxinZHOU | 0:07c4fef6c0af | 68 | lcd.clear(); |
jiaxinZHOU | 0:07c4fef6c0af | 69 | move.onlcd(lcd); |
jiaxinZHOU | 0:07c4fef6c0af | 70 | lcd.refresh(); |
jiaxinZHOU | 0:07c4fef6c0af | 71 | } |
jiaxinZHOU | 0:07c4fef6c0af | 72 | |
jiaxinZHOU | 0:07c4fef6c0af | 73 | void welcome() { |
jiaxinZHOU | 0:07c4fef6c0af | 74 | lcd.printString(" snake! ",0,1); |
jiaxinZHOU | 0:07c4fef6c0af | 75 | lcd.printString(" Press Start ",0,4); |
jiaxinZHOU | 0:07c4fef6c0af | 76 | lcd.refresh(); |
jiaxinZHOU | 0:07c4fef6c0af | 77 | |
jiaxinZHOU | 0:07c4fef6c0af | 78 | while ( pad.check_event(Gamepad::START_PRESSED) == false) { |
jiaxinZHOU | 0:07c4fef6c0af | 79 | pad.leds_on(); |
jiaxinZHOU | 0:07c4fef6c0af | 80 | wait(0.1); |
jiaxinZHOU | 0:07c4fef6c0af | 81 | pad.leds_off(); |
jiaxinZHOU | 0:07c4fef6c0af | 82 | wait(0.1); |
jiaxinZHOU | 0:07c4fef6c0af | 83 | } |
jiaxinZHOU | 0:07c4fef6c0af | 84 | |
jiaxinZHOU | 0:07c4fef6c0af | 85 | } |