ZIYI CHEN ml17z4c 201214999
Dependencies: mbed
main.cpp@9:a8b2086a46e5, 2019-05-08 (annotated)
- Committer:
- ziyi11
- Date:
- Wed May 08 20:48:33 2019 +0000
- Revision:
- 9:a8b2086a46e5
- Parent:
- 8:52e0506e98b8
- Child:
- 10:da19fe1a137c
try1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ziyi11 | 0:bf56f20b9c5a | 1 | /* |
ziyi11 | 0:bf56f20b9c5a | 2 | ELEC2645 Embedded Systems Project |
ziyi11 | 0:bf56f20b9c5a | 3 | School of Electronic & Electrical Engineering |
ziyi11 | 0:bf56f20b9c5a | 4 | University of Leeds |
ziyi11 | 9:a8b2086a46e5 | 5 | Name: ZIYI CHEN |
ziyi11 | 9:a8b2086a46e5 | 6 | Username: ml17z4c |
ziyi11 | 9:a8b2086a46e5 | 7 | Student ID Number: 201214999 |
ziyi11 | 9:a8b2086a46e5 | 8 | Date: may 2019 |
ziyi11 | 0:bf56f20b9c5a | 9 | */ |
ziyi11 | 0:bf56f20b9c5a | 10 | |
ziyi11 | 9:a8b2086a46e5 | 11 | |
ziyi11 | 9:a8b2086a46e5 | 12 | |
ziyi11 | 4:104a7dafcecd | 13 | #include "mbed.h" |
ziyi11 | 9:a8b2086a46e5 | 14 | #include "Gamepad.h" |
ziyi11 | 3:da7256e04d41 | 15 | #include "N5110.h" |
ziyi11 | 9:a8b2086a46e5 | 16 | #include "Eng.h" |
ziyi11 | 9:a8b2086a46e5 | 17 | |
ziyi11 | 9:a8b2086a46e5 | 18 | |
ziyi11 | 0:bf56f20b9c5a | 19 | |
ziyi11 | 9:a8b2086a46e5 | 20 | N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11); |
ziyi11 | 9:a8b2086a46e5 | 21 | Eng gameset; |
ziyi11 | 9:a8b2086a46e5 | 22 | Gamepad gamepad; |
ziyi11 | 9:a8b2086a46e5 | 23 | Direction d; |
ziyi11 | 9:a8b2086a46e5 | 24 | |
ziyi11 | 9:a8b2086a46e5 | 25 | void init(); |
ziyi11 | 9:a8b2086a46e5 | 26 | |
ziyi11 | 9:a8b2086a46e5 | 27 | void renderSnake(); |
ziyi11 | 9:a8b2086a46e5 | 28 | |
ziyi11 | 9:a8b2086a46e5 | 29 | void welcome(); |
ziyi11 | 9:a8b2086a46e5 | 30 | |
ziyi11 | 9:a8b2086a46e5 | 31 | void restart(); |
ziyi11 | 5:f1a193bb84a2 | 32 | |
ziyi11 | 4:104a7dafcecd | 33 | |
ziyi11 | 4:104a7dafcecd | 34 | |
ziyi11 | 3:da7256e04d41 | 35 | |
ziyi11 | 9:a8b2086a46e5 | 36 | int main() |
ziyi11 | 9:a8b2086a46e5 | 37 | { |
ziyi11 | 9:a8b2086a46e5 | 38 | printf("Loaded\n"); |
ziyi11 | 9:a8b2086a46e5 | 39 | init(); |
ziyi11 | 9:a8b2086a46e5 | 40 | welcome(); |
ziyi11 | 9:a8b2086a46e5 | 41 | |
ziyi11 | 9:a8b2086a46e5 | 42 | bool started = false; |
ziyi11 | 9:a8b2086a46e5 | 43 | while (1) { |
ziyi11 | 9:a8b2086a46e5 | 44 | |
ziyi11 | 9:a8b2086a46e5 | 45 | if(gamepad.check_event(Gamepad::START_PRESSED) == true) { |
ziyi11 | 9:a8b2086a46e5 | 46 | started = true; |
ziyi11 | 9:a8b2086a46e5 | 47 | } |
ziyi11 | 9:a8b2086a46e5 | 48 | if(started) { |
ziyi11 | 9:a8b2086a46e5 | 49 | gameset.userinput(gamepad); |
ziyi11 | 9:a8b2086a46e5 | 50 | gameset.update(gamepad); |
ziyi11 | 9:a8b2086a46e5 | 51 | renderSnake(); |
ziyi11 | 9:a8b2086a46e5 | 52 | if (gameset.getGameOver()) { |
ziyi11 | 9:a8b2086a46e5 | 53 | gameset.score(lcd); |
ziyi11 | 9:a8b2086a46e5 | 54 | restart(); |
ziyi11 | 9:a8b2086a46e5 | 55 | } |
ziyi11 | 9:a8b2086a46e5 | 56 | } |
ziyi11 | 9:a8b2086a46e5 | 57 | |
ziyi11 | 9:a8b2086a46e5 | 58 | } |
ziyi11 | 9:a8b2086a46e5 | 59 | } |
ziyi11 | 9:a8b2086a46e5 | 60 | |
ziyi11 | 9:a8b2086a46e5 | 61 | void init() |
ziyi11 | 9:a8b2086a46e5 | 62 | { |
ziyi11 | 9:a8b2086a46e5 | 63 | |
ziyi11 | 9:a8b2086a46e5 | 64 | gameset.init(); |
ziyi11 | 9:a8b2086a46e5 | 65 | lcd.init(); |
ziyi11 | 9:a8b2086a46e5 | 66 | lcd.setContrast(0.5); |
ziyi11 | 9:a8b2086a46e5 | 67 | gamepad.init(); |
ziyi11 | 5:f1a193bb84a2 | 68 | |
ziyi11 | 5:f1a193bb84a2 | 69 | |
ziyi11 | 9:a8b2086a46e5 | 70 | } |
ziyi11 | 9:a8b2086a46e5 | 71 | void welcome() |
ziyi11 | 5:f1a193bb84a2 | 72 | { |
ziyi11 | 5:f1a193bb84a2 | 73 | |
ziyi11 | 9:a8b2086a46e5 | 74 | |
ziyi11 | 9:a8b2086a46e5 | 75 | lcd.printString(" Snake! ",0,1); |
ziyi11 | 9:a8b2086a46e5 | 76 | lcd.printString(" Press Start ",0,4); |
ziyi11 | 9:a8b2086a46e5 | 77 | lcd.refresh(); |
ziyi11 | 5:f1a193bb84a2 | 78 | |
ziyi11 | 9:a8b2086a46e5 | 79 | while ( gamepad.check_event(Gamepad::START_PRESSED) == false) { |
ziyi11 | 9:a8b2086a46e5 | 80 | gamepad.leds_on(); |
ziyi11 | 9:a8b2086a46e5 | 81 | wait(0.1); |
ziyi11 | 9:a8b2086a46e5 | 82 | gamepad.leds_off(); |
ziyi11 | 9:a8b2086a46e5 | 83 | wait(0.1); |
ziyi11 | 9:a8b2086a46e5 | 84 | } |
ziyi11 | 9:a8b2086a46e5 | 85 | wait(0.1); |
ziyi11 | 5:f1a193bb84a2 | 86 | |
ziyi11 | 5:f1a193bb84a2 | 87 | } |
ziyi11 | 5:f1a193bb84a2 | 88 | |
ziyi11 | 9:a8b2086a46e5 | 89 | |
ziyi11 | 9:a8b2086a46e5 | 90 | |
ziyi11 | 9:a8b2086a46e5 | 91 | void restart() |
ziyi11 | 5:f1a193bb84a2 | 92 | { |
ziyi11 | 9:a8b2086a46e5 | 93 | |
ziyi11 | 9:a8b2086a46e5 | 94 | gameset.init(); |
ziyi11 | 5:f1a193bb84a2 | 95 | } |
ziyi11 | 5:f1a193bb84a2 | 96 | |
ziyi11 | 9:a8b2086a46e5 | 97 | void renderSnake() |
ziyi11 | 9:a8b2086a46e5 | 98 | { |
ziyi11 | 9:a8b2086a46e5 | 99 | lcd.clear(); |
ziyi11 | 9:a8b2086a46e5 | 100 | gameset.draw(lcd); |
ziyi11 | 5:f1a193bb84a2 | 101 | lcd.refresh(); |
ziyi11 | 9:a8b2086a46e5 | 102 | wait(0.2); |
ziyi11 | 9:a8b2086a46e5 | 103 | |
ziyi11 | 7:8b6f175fcb0e | 104 | } |
ziyi11 | 3:da7256e04d41 | 105 | |
ziyi11 | 7:8b6f175fcb0e | 106 | |
ziyi11 | 9:a8b2086a46e5 | 107 |