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@9:f0213e632379, 2020-05-22 (annotated)
- Committer:
- sdlashmar
- Date:
- Fri May 22 11:08:40 2020 +0000
- Revision:
- 9:f0213e632379
- Parent:
- 8:1e4182ebb063
- Child:
- 10:3958fb08696d
GAME OVER FUNCTION NOW WORKING
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| eencae | 0:b7f1f47bb26a | 1 | /* |
| eencae | 0:b7f1f47bb26a | 2 | ELEC2645 Embedded Systems Project |
| eencae | 0:b7f1f47bb26a | 3 | School of Electronic & Electrical Engineering |
| eencae | 0:b7f1f47bb26a | 4 | University of Leeds |
| eencae | 0:b7f1f47bb26a | 5 | 2019/20 |
| eencae | 0:b7f1f47bb26a | 6 | |
| sdlashmar | 1:5aba5e5a748b | 7 | Name:Samuel Lashmar |
| sdlashmar | 1:5aba5e5a748b | 8 | Username:el17sdl |
| sdlashmar | 1:5aba5e5a748b | 9 | Student ID Number:201170334 |
| sdlashmar | 1:5aba5e5a748b | 10 | Date:04/03/20 |
| eencae | 0:b7f1f47bb26a | 11 | */ |
| eencae | 0:b7f1f47bb26a | 12 | |
| eencae | 0:b7f1f47bb26a | 13 | // includes |
| eencae | 0:b7f1f47bb26a | 14 | #include "mbed.h" |
| eencae | 0:b7f1f47bb26a | 15 | #include "Gamepad.h" |
| eencae | 0:b7f1f47bb26a | 16 | #include "N5110.h" |
| sdlashmar | 5:256e5e0b6cd7 | 17 | #include "SnakeHead.h" |
| sdlashmar | 5:256e5e0b6cd7 | 18 | #include "SnakeTail.h" |
| sdlashmar | 8:1e4182ebb063 | 19 | #include "GameEngine.h" |
| eencae | 0:b7f1f47bb26a | 20 | |
| sdlashmar | 4:c5addc5475d3 | 21 | |
| eencae | 0:b7f1f47bb26a | 22 | // objects |
| eencae | 0:b7f1f47bb26a | 23 | Gamepad pad; |
| eencae | 0:b7f1f47bb26a | 24 | N5110 lcd; |
| sdlashmar | 5:256e5e0b6cd7 | 25 | SnakeHead head; |
| sdlashmar | 5:256e5e0b6cd7 | 26 | SnakeTail tail; |
| sdlashmar | 8:1e4182ebb063 | 27 | GameEngine engine; |
| sdlashmar | 8:1e4182ebb063 | 28 | |
| sdlashmar | 8:1e4182ebb063 | 29 | // |
| sdlashmar | 8:1e4182ebb063 | 30 | #define HEAD_SIZE 1 |
| sdlashmar | 8:1e4182ebb063 | 31 | #define HEAD_SPEED 3 |
| sdlashmar | 2:6792f99c3c0d | 32 | |
| sdlashmar | 2:6792f99c3c0d | 33 | void welcome(); |
| sdlashmar | 6:964cc4896627 | 34 | void init(); |
| sdlashmar | 2:6792f99c3c0d | 35 | |
| eencae | 0:b7f1f47bb26a | 36 | |
| eencae | 0:b7f1f47bb26a | 37 | int main() |
| eencae | 0:b7f1f47bb26a | 38 | { |
| sdlashmar | 6:964cc4896627 | 39 | int fps = 6; |
| sdlashmar | 6:964cc4896627 | 40 | //initialise objects |
| sdlashmar | 6:964cc4896627 | 41 | init(); |
| sdlashmar | 8:1e4182ebb063 | 42 | engine.init(HEAD_SIZE, HEAD_SPEED); |
| sdlashmar | 8:1e4182ebb063 | 43 | //head.init(1,3); |
| eencae | 0:b7f1f47bb26a | 44 | |
| sdlashmar | 6:964cc4896627 | 45 | //render first frame |
| sdlashmar | 6:964cc4896627 | 46 | |
| sdlashmar | 4:c5addc5475d3 | 47 | welcome(); |
| sdlashmar | 6:964cc4896627 | 48 | wait(3.0); |
| sdlashmar | 6:964cc4896627 | 49 | |
| sdlashmar | 9:f0213e632379 | 50 | //lcd.clear(); |
| sdlashmar | 8:1e4182ebb063 | 51 | //head.draw(lcd); |
| sdlashmar | 9:f0213e632379 | 52 | //lcd.refresh(); |
| sdlashmar | 6:964cc4896627 | 53 | |
| sdlashmar | 2:6792f99c3c0d | 54 | while(1) { |
| sdlashmar | 6:964cc4896627 | 55 | /* |
| sdlashmar | 4:c5addc5475d3 | 56 | if (_d == N) { |
| sdlashmar | 4:c5addc5475d3 | 57 | printf("North\n"); |
| sdlashmar | 4:c5addc5475d3 | 58 | } else if (_d == NE) { |
| sdlashmar | 4:c5addc5475d3 | 59 | printf("North East\n"); |
| sdlashmar | 4:c5addc5475d3 | 60 | } else if (_d == E) { |
| sdlashmar | 4:c5addc5475d3 | 61 | printf("East\n"); |
| sdlashmar | 4:c5addc5475d3 | 62 | } else if (_d == SE) { |
| sdlashmar | 4:c5addc5475d3 | 63 | printf("South East\n"); |
| sdlashmar | 4:c5addc5475d3 | 64 | } else if (_d == S) { |
| sdlashmar | 4:c5addc5475d3 | 65 | printf("South\n"); |
| sdlashmar | 4:c5addc5475d3 | 66 | } else if (_d == SW) { |
| sdlashmar | 4:c5addc5475d3 | 67 | printf("South West\n"); |
| sdlashmar | 4:c5addc5475d3 | 68 | } else if (_d == W) { |
| sdlashmar | 4:c5addc5475d3 | 69 | printf("West\n"); |
| sdlashmar | 4:c5addc5475d3 | 70 | } else if (_d == NW) { |
| sdlashmar | 4:c5addc5475d3 | 71 | printf("North West\n"); |
| sdlashmar | 4:c5addc5475d3 | 72 | } else { |
| sdlashmar | 4:c5addc5475d3 | 73 | printf("Centre\n"); |
| sdlashmar | 4:c5addc5475d3 | 74 | };*/ |
| sdlashmar | 7:c67a5c6a874f | 75 | /*if (pad.A_pressed() == true) { |
| sdlashmar | 6:964cc4896627 | 76 | printf("start pressed\n"); |
| sdlashmar | 6:964cc4896627 | 77 | } else if (pad.A_pressed() == false) { |
| sdlashmar | 6:964cc4896627 | 78 | printf("start not pressed\n"); |
| sdlashmar | 7:c67a5c6a874f | 79 | }*/ |
| sdlashmar | 8:1e4182ebb063 | 80 | |
| sdlashmar | 8:1e4182ebb063 | 81 | |
| sdlashmar | 8:1e4182ebb063 | 82 | engine.read_input(pad); |
| sdlashmar | 8:1e4182ebb063 | 83 | engine.update(pad, lcd); |
| sdlashmar | 6:964cc4896627 | 84 | lcd.clear(); |
| sdlashmar | 8:1e4182ebb063 | 85 | engine.draw(lcd); |
| sdlashmar | 6:964cc4896627 | 86 | lcd.refresh(); |
| sdlashmar | 7:c67a5c6a874f | 87 | |
| sdlashmar | 7:c67a5c6a874f | 88 | |
| sdlashmar | 7:c67a5c6a874f | 89 | |
| sdlashmar | 7:c67a5c6a874f | 90 | |
| sdlashmar | 6:964cc4896627 | 91 | wait(1.0f/fps); |
| sdlashmar | 2:6792f99c3c0d | 92 | } |
| sdlashmar | 6:964cc4896627 | 93 | |
| sdlashmar | 6:964cc4896627 | 94 | |
| eencae | 0:b7f1f47bb26a | 95 | } |
| eencae | 0:b7f1f47bb26a | 96 | |
| sdlashmar | 4:c5addc5475d3 | 97 | |
| sdlashmar | 4:c5addc5475d3 | 98 | |
| sdlashmar | 2:6792f99c3c0d | 99 | void welcome() { |
| sdlashmar | 6:964cc4896627 | 100 | |
| sdlashmar | 6:964cc4896627 | 101 | lcd.printString(" SNAKE! ",0,1); |
| sdlashmar | 2:6792f99c3c0d | 102 | lcd.refresh(); |
| sdlashmar | 6:964cc4896627 | 103 | |
| sdlashmar | 6:964cc4896627 | 104 | /* wait flashing LEDs until start button is pressed (start pressed function does not seem ot be working as expected |
| sdlashmar | 6:964cc4896627 | 105 | while ( pad.start_pressed() == false) { |
| sdlashmar | 6:964cc4896627 | 106 | lcd.setContrast( pad.read_pot1()); |
| sdlashmar | 6:964cc4896627 | 107 | pad.leds_on(); |
| sdlashmar | 6:964cc4896627 | 108 | wait(0.1); |
| sdlashmar | 6:964cc4896627 | 109 | pad.leds_off(); |
| sdlashmar | 6:964cc4896627 | 110 | wait(0.1); |
| sdlashmar | 6:964cc4896627 | 111 | } */ |
| sdlashmar | 6:964cc4896627 | 112 | |
| sdlashmar | 2:6792f99c3c0d | 113 | } |
| sdlashmar | 2:6792f99c3c0d | 114 | |
| sdlashmar | 6:964cc4896627 | 115 | void init() { |
| sdlashmar | 6:964cc4896627 | 116 | |
| sdlashmar | 6:964cc4896627 | 117 | lcd.init(); |
| sdlashmar | 6:964cc4896627 | 118 | pad.init(); |
| sdlashmar | 6:964cc4896627 | 119 | } |
| sdlashmar | 6:964cc4896627 | 120 | |
| sdlashmar | 6:964cc4896627 | 121 |