ELEC2645 (2018/19) / Mbed 2 deprecated el17cr

Dependencies:   mbed

Committer:
el17cr
Date:
Mon May 06 09:37:34 2019 +0000
Revision:
6:85314a3d69cd
Parent:
5:1a9d84df7207
Child:
7:cf469c3505a2
level counter added, ground speed increases with each level, ground width increases with each level

Who changed what in which revision?

UserRevisionLine numberNew contents of line
el17cr 0:adb2f501dd61 1 /*
el17cr 0:adb2f501dd61 2 ELEC2645 Embedded Systems Project
el17cr 0:adb2f501dd61 3 School of Electronic & Electrical Engineering
el17cr 0:adb2f501dd61 4 University of Leeds
el17cr 0:adb2f501dd61 5 Name:
el17cr 0:adb2f501dd61 6 Username:
el17cr 0:adb2f501dd61 7 Student ID Number:
el17cr 0:adb2f501dd61 8 Date:
el17cr 0:adb2f501dd61 9 */
el17cr 2:7f91a86b4dc0 10
el17cr 2:7f91a86b4dc0 11 #include "mbed.h"
el17cr 2:7f91a86b4dc0 12 #include "Gamepad.h"
el17cr 2:7f91a86b4dc0 13 #include "N5110.h"
el17cr 2:7f91a86b4dc0 14 #include "Falldown.h"
el17cr 2:7f91a86b4dc0 15
el17cr 3:5edefa83f8f0 16 //#define GROUND_WIDTH 70
el17cr 2:7f91a86b4dc0 17 #define GROUND_HEIGHT 2
el17cr 6:85314a3d69cd 18 //#define GROUND_WIDTH 50
el17cr 3:5edefa83f8f0 19 #define BALL_SIZE 3
el17cr 6:85314a3d69cd 20 //#define LINE_HEIGHT 1
el17cr 6:85314a3d69cd 21 //#define LINE_WIDTH WIDTH
el17cr 3:5edefa83f8f0 22
el17cr 2:7f91a86b4dc0 23
el17cr 6:85314a3d69cd 24 int ground_width = 40;
el17cr 6:85314a3d69cd 25 double ground_speed = 0.5;
el17cr 6:85314a3d69cd 26 int level = 1;
el17cr 2:7f91a86b4dc0 27
el17cr 2:7f91a86b4dc0 28
el17cr 2:7f91a86b4dc0 29 struct UserInput {
el17cr 2:7f91a86b4dc0 30 Direction d;
el17cr 2:7f91a86b4dc0 31 float mag;
el17cr 2:7f91a86b4dc0 32 };
el17cr 2:7f91a86b4dc0 33
el17cr 2:7f91a86b4dc0 34 N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11); // K64F - pwr from 3V3
el17cr 2:7f91a86b4dc0 35 Gamepad pad;
el17cr 2:7f91a86b4dc0 36 Falldown falldown;
el17cr 2:7f91a86b4dc0 37
el17cr 2:7f91a86b4dc0 38 void init();
el17cr 2:7f91a86b4dc0 39 void update_game(UserInput input);
el17cr 2:7f91a86b4dc0 40 void render();
el17cr 6:85314a3d69cd 41 void Level();
el17cr 6:85314a3d69cd 42 void welcome();
el17cr 2:7f91a86b4dc0 43
el17cr 5:1a9d84df7207 44
el17cr 2:7f91a86b4dc0 45 int main()
el17cr 2:7f91a86b4dc0 46 {
el17cr 2:7f91a86b4dc0 47 init();
el17cr 6:85314a3d69cd 48 welcome();
el17cr 6:85314a3d69cd 49 //Level();
el17cr 2:7f91a86b4dc0 50 render();
el17cr 2:7f91a86b4dc0 51 wait(0.1);
el17cr 2:7f91a86b4dc0 52 while (1) {
el17cr 2:7f91a86b4dc0 53 falldown.read_input(pad);
el17cr 2:7f91a86b4dc0 54 falldown.update(pad);
el17cr 2:7f91a86b4dc0 55 render();
el17cr 2:7f91a86b4dc0 56 wait(0.1);
el17cr 5:1a9d84df7207 57 if (falldown.check_goal() == 1) {
el17cr 5:1a9d84df7207 58 //falldown.read_input(pad);
el17cr 5:1a9d84df7207 59 //falldown.update(pad);
el17cr 5:1a9d84df7207 60 //render();
el17cr 6:85314a3d69cd 61 level = level++;
el17cr 6:85314a3d69cd 62 ground_width = ground_width + 2;
el17cr 6:85314a3d69cd 63 ground_speed = ground_speed + 0.2;
el17cr 6:85314a3d69cd 64 falldown.init(GROUND_HEIGHT,ground_width,BALL_SIZE,ground_speed);
el17cr 6:85314a3d69cd 65 //ground_width = ground_width + 10;
el17cr 5:1a9d84df7207 66 wait(0.1);
el17cr 5:1a9d84df7207 67 //clear lines
el17cr 5:1a9d84df7207 68 //redraw lines
el17cr 5:1a9d84df7207 69 }
el17cr 2:7f91a86b4dc0 70 }
el17cr 5:1a9d84df7207 71 /*while (falldown.check_goal == 1) {
el17cr 5:1a9d84df7207 72
el17cr 5:1a9d84df7207 73 falldown.init(GROUND_HEIGHT,BALL_SIZE);
el17cr 5:1a9d84df7207 74 wait(0.1);*/
el17cr 5:1a9d84df7207 75 }
el17cr 5:1a9d84df7207 76
el17cr 2:7f91a86b4dc0 77
el17cr 2:7f91a86b4dc0 78 void init()
el17cr 2:7f91a86b4dc0 79 {
el17cr 2:7f91a86b4dc0 80 lcd.init();
el17cr 2:7f91a86b4dc0 81 pad.init();
el17cr 6:85314a3d69cd 82
el17cr 6:85314a3d69cd 83 falldown.init(GROUND_HEIGHT,ground_width,BALL_SIZE,ground_speed);
el17cr 2:7f91a86b4dc0 84 }
el17cr 2:7f91a86b4dc0 85
el17cr 2:7f91a86b4dc0 86 void render()
el17cr 2:7f91a86b4dc0 87 {
el17cr 5:1a9d84df7207 88
el17cr 4:03d13a53308c 89 lcd.clear();
el17cr 2:7f91a86b4dc0 90 falldown.draw(lcd);
el17cr 6:85314a3d69cd 91 char buffer[1];
el17cr 6:85314a3d69cd 92 sprintf(buffer,"%2d",level);
el17cr 6:85314a3d69cd 93 lcd.printString(buffer,1,1);
el17cr 2:7f91a86b4dc0 94 lcd.refresh();
el17cr 5:1a9d84df7207 95
el17cr 4:03d13a53308c 96 }
el17cr 6:85314a3d69cd 97 /*
el17cr 6:85314a3d69cd 98 void Level()
el17cr 6:85314a3d69cd 99 {
el17cr 6:85314a3d69cd 100 int level = 1;
el17cr 6:85314a3d69cd 101 char buffer[14];
el17cr 6:85314a3d69cd 102 sprintf(buffer,"%2d",level);
el17cr 6:85314a3d69cd 103 lcd.printString(buffer,0,0);
el17cr 6:85314a3d69cd 104 }
el17cr 6:85314a3d69cd 105 */
el17cr 6:85314a3d69cd 106
el17cr 6:85314a3d69cd 107 void welcome()
el17cr 6:85314a3d69cd 108 {
el17cr 6:85314a3d69cd 109 lcd.printString("Falldown",0,1);
el17cr 6:85314a3d69cd 110 lcd.printString("Press Start",0,4);
el17cr 6:85314a3d69cd 111 lcd.refresh();
el17cr 6:85314a3d69cd 112
el17cr 6:85314a3d69cd 113 while ( pad.check_event(Gamepad::START_PRESSED) == false) {
el17cr 6:85314a3d69cd 114 pad.leds_on();
el17cr 6:85314a3d69cd 115 wait(0.1);
el17cr 6:85314a3d69cd 116 pad.leds_off();
el17cr 6:85314a3d69cd 117 wait(0.1);
el17cr 6:85314a3d69cd 118 }
el17cr 6:85314a3d69cd 119 }