Dependencies:   mbed

Committer:
sdlashmar
Date:
Tue May 19 10:18:14 2020 +0000
Revision:
6:964cc4896627
Parent:
5:256e5e0b6cd7
Child:
7:c67a5c6a874f
switch case menu removed due to performance issues ;

Who changed what in which revision?

UserRevisionLine numberNew 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"
eencae 0:b7f1f47bb26a 19
sdlashmar 4:c5addc5475d3 20
eencae 0:b7f1f47bb26a 21 // objects
eencae 0:b7f1f47bb26a 22 Gamepad pad;
eencae 0:b7f1f47bb26a 23 N5110 lcd;
sdlashmar 5:256e5e0b6cd7 24 SnakeHead head;
sdlashmar 5:256e5e0b6cd7 25 SnakeTail tail;
sdlashmar 2:6792f99c3c0d 26
sdlashmar 2:6792f99c3c0d 27 void welcome();
sdlashmar 6:964cc4896627 28 void init();
sdlashmar 2:6792f99c3c0d 29
eencae 0:b7f1f47bb26a 30
eencae 0:b7f1f47bb26a 31 int main()
eencae 0:b7f1f47bb26a 32 {
sdlashmar 6:964cc4896627 33 int fps = 6;
sdlashmar 6:964cc4896627 34 //initialise objects
sdlashmar 6:964cc4896627 35 init();
sdlashmar 6:964cc4896627 36 head.init(1,3);
eencae 0:b7f1f47bb26a 37
sdlashmar 6:964cc4896627 38 //render first frame
sdlashmar 6:964cc4896627 39
sdlashmar 4:c5addc5475d3 40 welcome();
sdlashmar 6:964cc4896627 41 wait(3.0);
sdlashmar 6:964cc4896627 42
sdlashmar 6:964cc4896627 43 lcd.clear();
sdlashmar 6:964cc4896627 44 head.draw(lcd);
sdlashmar 6:964cc4896627 45 lcd.refresh();
sdlashmar 6:964cc4896627 46
sdlashmar 2:6792f99c3c0d 47 while(1) {
sdlashmar 6:964cc4896627 48 /*
sdlashmar 4:c5addc5475d3 49 if (_d == N) {
sdlashmar 4:c5addc5475d3 50 printf("North\n");
sdlashmar 4:c5addc5475d3 51 } else if (_d == NE) {
sdlashmar 4:c5addc5475d3 52 printf("North East\n");
sdlashmar 4:c5addc5475d3 53 } else if (_d == E) {
sdlashmar 4:c5addc5475d3 54 printf("East\n");
sdlashmar 4:c5addc5475d3 55 } else if (_d == SE) {
sdlashmar 4:c5addc5475d3 56 printf("South East\n");
sdlashmar 4:c5addc5475d3 57 } else if (_d == S) {
sdlashmar 4:c5addc5475d3 58 printf("South\n");
sdlashmar 4:c5addc5475d3 59 } else if (_d == SW) {
sdlashmar 4:c5addc5475d3 60 printf("South West\n");
sdlashmar 4:c5addc5475d3 61 } else if (_d == W) {
sdlashmar 4:c5addc5475d3 62 printf("West\n");
sdlashmar 4:c5addc5475d3 63 } else if (_d == NW) {
sdlashmar 4:c5addc5475d3 64 printf("North West\n");
sdlashmar 4:c5addc5475d3 65 } else {
sdlashmar 4:c5addc5475d3 66 printf("Centre\n");
sdlashmar 4:c5addc5475d3 67 };*/
sdlashmar 6:964cc4896627 68 if (pad.A_pressed() == true) {
sdlashmar 6:964cc4896627 69 printf("start pressed\n");
sdlashmar 6:964cc4896627 70 } else if (pad.A_pressed() == false) {
sdlashmar 6:964cc4896627 71 printf("start not pressed\n");
sdlashmar 3:36f9e3a75905 72 }
sdlashmar 6:964cc4896627 73 Direction _d = pad.get_direction();
sdlashmar 6:964cc4896627 74 head.change_direction(_d);
sdlashmar 6:964cc4896627 75 head.update();
sdlashmar 6:964cc4896627 76 Vector2D headPos = head.get_pos();
sdlashmar 6:964cc4896627 77 tail.set_length(2);
sdlashmar 6:964cc4896627 78 lcd.clear();
sdlashmar 6:964cc4896627 79 head.draw(lcd);
sdlashmar 6:964cc4896627 80 tail.draw_tail(lcd, headPos);
sdlashmar 6:964cc4896627 81 lcd.refresh();
sdlashmar 6:964cc4896627 82 wait(1.0f/fps);
sdlashmar 2:6792f99c3c0d 83 }
sdlashmar 6:964cc4896627 84
sdlashmar 6:964cc4896627 85
eencae 0:b7f1f47bb26a 86 }
eencae 0:b7f1f47bb26a 87
sdlashmar 4:c5addc5475d3 88
sdlashmar 4:c5addc5475d3 89
sdlashmar 2:6792f99c3c0d 90 void welcome() {
sdlashmar 6:964cc4896627 91
sdlashmar 6:964cc4896627 92 lcd.printString(" SNAKE! ",0,1);
sdlashmar 2:6792f99c3c0d 93 lcd.refresh();
sdlashmar 6:964cc4896627 94
sdlashmar 6:964cc4896627 95 /* wait flashing LEDs until start button is pressed (start pressed function does not seem ot be working as expected
sdlashmar 6:964cc4896627 96 while ( pad.start_pressed() == false) {
sdlashmar 6:964cc4896627 97 lcd.setContrast( pad.read_pot1());
sdlashmar 6:964cc4896627 98 pad.leds_on();
sdlashmar 6:964cc4896627 99 wait(0.1);
sdlashmar 6:964cc4896627 100 pad.leds_off();
sdlashmar 6:964cc4896627 101 wait(0.1);
sdlashmar 6:964cc4896627 102 } */
sdlashmar 6:964cc4896627 103
sdlashmar 2:6792f99c3c0d 104 }
sdlashmar 2:6792f99c3c0d 105
sdlashmar 6:964cc4896627 106 void init() {
sdlashmar 6:964cc4896627 107
sdlashmar 6:964cc4896627 108 lcd.init();
sdlashmar 6:964cc4896627 109 pad.init();
sdlashmar 6:964cc4896627 110 }
sdlashmar 6:964cc4896627 111
sdlashmar 6:964cc4896627 112