ELEC2645 (2019/20) / Mbed 2 deprecated ELEC2645_Project_el17sdl_v2

Dependencies:   mbed

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?

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"
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