ELEC2645 (2018/19) / Mbed 2 deprecated EL17MCD

Dependencies:   mbed

Committer:
el17mcd
Date:
Wed Apr 17 14:03:14 2019 +0000
Revision:
13:feadff02d3f7
Parent:
12:9e6d5d0a0c82
Child:
14:fe2e16cdf219
! Tank's Health displayed on gamepad LEDs. Change the 'power' of the tanks shots (potentiometer controls velocity). Tanks cannot move outside of screen or across map object.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
el17mcd 2:8382613c86a0 1 /*
el17mcd 2:8382613c86a0 2 ELEC2645 Embedded Systems Project
el17mcd 2:8382613c86a0 3 School of Electronic & Electrical Engineering
el17mcd 2:8382613c86a0 4 University of Leeds
el17mcd 2:8382613c86a0 5 Name: Maxim C. Delacoe
el17mcd 2:8382613c86a0 6 Username: EL 17 MCD
el17mcd 2:8382613c86a0 7 Student ID Number: 2011 58344
el17mcd 2:8382613c86a0 8 Date: 19/03/2019
el17mcd 2:8382613c86a0 9 */
el17mcd 2:8382613c86a0 10 ///////// pre-processor directives ////////
el17mcd 2:8382613c86a0 11 #include "mbed.h"
el17mcd 2:8382613c86a0 12 #include "Gamepad.h"
el17mcd 2:8382613c86a0 13 #include "N5110.h"
el17mcd 2:8382613c86a0 14 #include "Bitmap.h"
el17mcd 12:9e6d5d0a0c82 15 #include "Tank.h"
el17mcd 7:a3ccabdebe2e 16 #include "TanksEngine.h"
el17mcd 7:a3ccabdebe2e 17 #include "Projectile.h"
el17mcd 12:9e6d5d0a0c82 18 #include "Graphics.h"
el17mcd 8:d4e419dad90f 19 #define PI 3.14159265
el17mcd 8:d4e419dad90f 20 #define DEG2PI 0.0174532925
el17mcd 2:8382613c86a0 21
el17mcd 10:d4fb12e9e7cd 22 #include <cmath>
el17mcd 10:d4fb12e9e7cd 23
el17mcd 7:a3ccabdebe2e 24 #ifdef WITH_TESTING
el17mcd 2:8382613c86a0 25
el17mcd 7:a3ccabdebe2e 26 #endif
el17mcd 7:a3ccabdebe2e 27
el17mcd 7:a3ccabdebe2e 28 /////////////// objects ///////////////
el17mcd 7:a3ccabdebe2e 29 N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
el17mcd 7:a3ccabdebe2e 30 TanksEngine engine;
el17mcd 11:4e2eb64031a0 31 Gamepad pad;
el17mcd 12:9e6d5d0a0c82 32 Graphics graphics;
el17mcd 7:a3ccabdebe2e 33
el17mcd 2:8382613c86a0 34 void welcome()
el17mcd 2:8382613c86a0 35 {
el17mcd 2:8382613c86a0 36 lcd.clear();
el17mcd 2:8382613c86a0 37 lcd.printString(" ELEC 2645",0,0);
el17mcd 2:8382613c86a0 38 lcd.printString(" Game ",0,1);
el17mcd 2:8382613c86a0 39 lcd.printString(" Project",0,2);
el17mcd 2:8382613c86a0 40 lcd.printString("Max C. Delacoe",0,4);
el17mcd 2:8382613c86a0 41 lcd.printString(" 2011 58344",0,5);
el17mcd 2:8382613c86a0 42 lcd.refresh();
el17mcd 2:8382613c86a0 43 wait(0.2);
el17mcd 2:8382613c86a0 44 }
el17mcd 2:8382613c86a0 45
el17mcd 2:8382613c86a0 46 int main()
el17mcd 2:8382613c86a0 47 {
el17mcd 2:8382613c86a0 48 lcd.init();
el17mcd 11:4e2eb64031a0 49 pad.init();
el17mcd 11:4e2eb64031a0 50 engine.initgame();
el17mcd 11:4e2eb64031a0 51 int fps = 60;
el17mcd 11:4e2eb64031a0 52 float frame_period_ms = 1000/fps;
el17mcd 13:feadff02d3f7 53 pad.led(3,1) ;
el17mcd 13:feadff02d3f7 54 pad.led(4,0.5) ;
el17mcd 13:feadff02d3f7 55 pad.led(5,0.25) ;
el17mcd 10:d4fb12e9e7cd 56
el17mcd 3:087b28bf8b96 57 // welcome(); // display welcome message
el17mcd 2:8382613c86a0 58
el17mcd 5:8a2e96f7fb4d 59 while(1) { // infinite loop
el17mcd 11:4e2eb64031a0 60
el17mcd 12:9e6d5d0a0c82 61 lcd.clear();
el17mcd 13:feadff02d3f7 62 engine.read_input(pad);
el17mcd 13:feadff02d3f7 63 graphics.draw_parkinson_map(lcd);
el17mcd 11:4e2eb64031a0 64 if (engine.get_turn() == 1) {
el17mcd 13:feadff02d3f7 65 engine.left_tank_turn(graphics, pad);
el17mcd 12:9e6d5d0a0c82 66 } else if (engine.get_turn() == 2 || engine.get_turn() == 4) {
el17mcd 13:feadff02d3f7 67 engine.projectile_phase(lcd);
el17mcd 12:9e6d5d0a0c82 68 } else if (engine.get_turn() == 3) {
el17mcd 13:feadff02d3f7 69 engine.right_tank_turn(graphics, pad); }
el17mcd 13:feadff02d3f7 70 engine.end();
el17mcd 12:9e6d5d0a0c82 71 if (engine.get_turn() == 5) {
el17mcd 12:9e6d5d0a0c82 72 while (1) {
el17mcd 12:9e6d5d0a0c82 73 lcd.clear();
el17mcd 12:9e6d5d0a0c82 74 engine.render(graphics, lcd);
el17mcd 12:9e6d5d0a0c82 75 lcd.refresh();
el17mcd 12:9e6d5d0a0c82 76 }
el17mcd 13:feadff02d3f7 77 }
el17mcd 12:9e6d5d0a0c82 78 engine.render(graphics, lcd);
el17mcd 8:d4e419dad90f 79 lcd.refresh();
el17mcd 12:9e6d5d0a0c82 80 wait_ms(frame_period_ms);
el17mcd 8:d4e419dad90f 81 }
el17mcd 11:4e2eb64031a0 82 /*
el17mcd 8:d4e419dad90f 83 lcd.clear();
el17mcd 8:d4e419dad90f 84 lcd.printString("DONE",0,1);
el17mcd 8:d4e419dad90f 85 lcd.refresh();
el17mcd 11:4e2eb64031a0 86 wait(10);*/
el17mcd 8:d4e419dad90f 87 }