Dependencies:   mbed

Committer:
sdlashmar
Date:
Thu May 21 13:55:57 2020 +0000
Revision:
7:c67a5c6a874f
Parent:
6:964cc4896627
Child:
8:1e4182ebb063
Game enine revision 1 (untested)

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 7:c67a5c6a874f 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 7:c67a5c6a874f 72 }*/
sdlashmar 6:964cc4896627 73 Direction _d = pad.get_direction();
sdlashmar 6:964cc4896627 74 head.change_direction(_d);
sdlashmar 7:c67a5c6a874f 75 //tail.set_length(2);
sdlashmar 6:964cc4896627 76 Vector2D headPos = head.get_pos();
sdlashmar 7:c67a5c6a874f 77 head.update();
sdlashmar 7:c67a5c6a874f 78 //tail.update(headPos);
sdlashmar 6:964cc4896627 79 lcd.clear();
sdlashmar 6:964cc4896627 80 head.draw(lcd);
sdlashmar 7:c67a5c6a874f 81 //tail.draw(lcd);
sdlashmar 7:c67a5c6a874f 82 //tail.draw_tail(lcd, head, _d);
sdlashmar 6:964cc4896627 83 lcd.refresh();
sdlashmar 7:c67a5c6a874f 84
sdlashmar 7:c67a5c6a874f 85
sdlashmar 7:c67a5c6a874f 86
sdlashmar 7:c67a5c6a874f 87
sdlashmar 6:964cc4896627 88 wait(1.0f/fps);
sdlashmar 2:6792f99c3c0d 89 }
sdlashmar 6:964cc4896627 90
sdlashmar 6:964cc4896627 91
eencae 0:b7f1f47bb26a 92 }
eencae 0:b7f1f47bb26a 93
sdlashmar 4:c5addc5475d3 94
sdlashmar 4:c5addc5475d3 95
sdlashmar 2:6792f99c3c0d 96 void welcome() {
sdlashmar 6:964cc4896627 97
sdlashmar 6:964cc4896627 98 lcd.printString(" SNAKE! ",0,1);
sdlashmar 2:6792f99c3c0d 99 lcd.refresh();
sdlashmar 6:964cc4896627 100
sdlashmar 6:964cc4896627 101 /* wait flashing LEDs until start button is pressed (start pressed function does not seem ot be working as expected
sdlashmar 6:964cc4896627 102 while ( pad.start_pressed() == false) {
sdlashmar 6:964cc4896627 103 lcd.setContrast( pad.read_pot1());
sdlashmar 6:964cc4896627 104 pad.leds_on();
sdlashmar 6:964cc4896627 105 wait(0.1);
sdlashmar 6:964cc4896627 106 pad.leds_off();
sdlashmar 6:964cc4896627 107 wait(0.1);
sdlashmar 6:964cc4896627 108 } */
sdlashmar 6:964cc4896627 109
sdlashmar 2:6792f99c3c0d 110 }
sdlashmar 2:6792f99c3c0d 111
sdlashmar 6:964cc4896627 112 void init() {
sdlashmar 6:964cc4896627 113
sdlashmar 6:964cc4896627 114 lcd.init();
sdlashmar 6:964cc4896627 115 pad.init();
sdlashmar 6:964cc4896627 116 }
sdlashmar 6:964cc4896627 117
sdlashmar 6:964cc4896627 118