ELEC2645 (2018/19) / Mbed 2 deprecated EL17MCD

Dependencies:   mbed

Committer:
el17mcd
Date:
Wed Apr 10 14:27:37 2019 +0000
Revision:
9:fe912235dd71
Parent:
8:d4e419dad90f
Child:
10:d4fb12e9e7cd
! Working prototype for projectile ballistics using classes.

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 7:a3ccabdebe2e 15 #include "TankL.h"
el17mcd 7:a3ccabdebe2e 16 #include "TanksEngine.h"
el17mcd 7:a3ccabdebe2e 17 #include "Projectile.h"
el17mcd 8:d4e419dad90f 18 #define PI 3.14159265
el17mcd 8:d4e419dad90f 19 #define DEG2PI 0.0174532925
el17mcd 2:8382613c86a0 20
el17mcd 7:a3ccabdebe2e 21 #ifdef WITH_TESTING
el17mcd 2:8382613c86a0 22
el17mcd 7:a3ccabdebe2e 23 #endif
el17mcd 7:a3ccabdebe2e 24
el17mcd 7:a3ccabdebe2e 25 /////////////// objects ///////////////
el17mcd 7:a3ccabdebe2e 26 N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
el17mcd 7:a3ccabdebe2e 27 TankL tankl;
el17mcd 7:a3ccabdebe2e 28 Projectile proj;
el17mcd 7:a3ccabdebe2e 29 TanksEngine engine;
el17mcd 7:a3ccabdebe2e 30
el17mcd 2:8382613c86a0 31 void welcome()
el17mcd 2:8382613c86a0 32 {
el17mcd 2:8382613c86a0 33 lcd.clear();
el17mcd 2:8382613c86a0 34 lcd.printString(" ELEC 2645",0,0);
el17mcd 2:8382613c86a0 35 lcd.printString(" Game ",0,1);
el17mcd 2:8382613c86a0 36 lcd.printString(" Project",0,2);
el17mcd 2:8382613c86a0 37 lcd.printString("Max C. Delacoe",0,4);
el17mcd 2:8382613c86a0 38 lcd.printString(" 2011 58344",0,5);
el17mcd 2:8382613c86a0 39 lcd.refresh();
el17mcd 2:8382613c86a0 40 wait(0.2);
el17mcd 2:8382613c86a0 41 }
el17mcd 2:8382613c86a0 42
el17mcd 2:8382613c86a0 43 int main()
el17mcd 2:8382613c86a0 44 {
el17mcd 2:8382613c86a0 45 lcd.init();
el17mcd 9:fe912235dd71 46 proj.set_launch_parameters(0, 4, 6, 45, 1.3, 0.02, 0.01);
el17mcd 9:fe912235dd71 47
el17mcd 8:d4e419dad90f 48 //tankl.set_health(1);
el17mcd 3:087b28bf8b96 49 // welcome(); // display welcome message
el17mcd 2:8382613c86a0 50
el17mcd 5:8a2e96f7fb4d 51 while(1) { // infinite loop
el17mcd 8:d4e419dad90f 52
el17mcd 9:fe912235dd71 53 proj.update_flight();
el17mcd 8:d4e419dad90f 54 lcd.clear();
el17mcd 8:d4e419dad90f 55 proj.draw(lcd);
el17mcd 8:d4e419dad90f 56 lcd.refresh();
el17mcd 9:fe912235dd71 57 wait_ms(50);
el17mcd 9:fe912235dd71 58 if (proj.check_boundaries() == true) {break;}
el17mcd 8:d4e419dad90f 59 }
el17mcd 8:d4e419dad90f 60 lcd.clear();
el17mcd 8:d4e419dad90f 61 lcd.printString("DONE",0,1);
el17mcd 8:d4e419dad90f 62 lcd.refresh();
el17mcd 8:d4e419dad90f 63 wait(10);
el17mcd 8:d4e419dad90f 64 }
el17mcd 8:d4e419dad90f 65 /* srand(time(NULL));
el17mcd 6:5d57c758c31d 66 int t_pos_x = rand() % (84-1-10); // Tank position
el17mcd 6:5d57c758c31d 67 int t_pos_y = rand() % (48-1-6);
el17mcd 7:a3ccabdebe2e 68 tankl.set_position(t_pos_x, t_pos_y);
el17mcd 6:5d57c758c31d 69
el17mcd 6:5d57c758c31d 70 int p_pos_x = rand() % (84-1-5); // projectile position
el17mcd 6:5d57c758c31d 71 int p_pos_y = rand() % (48-1-5);
el17mcd 7:a3ccabdebe2e 72 proj.set_position(p_pos_x, p_pos_y);
el17mcd 5:8a2e96f7fb4d 73
el17mcd 7:a3ccabdebe2e 74 tankl.generate_hitbox();
el17mcd 7:a3ccabdebe2e 75 proj.generate_hitbox();
el17mcd 7:a3ccabdebe2e 76 bool hit = engine.collision_pl(tankl, proj);
el17mcd 4:3b3a7f102250 77
el17mcd 7:a3ccabdebe2e 78 lcd.clear();
el17mcd 7:a3ccabdebe2e 79 tankl.draw(lcd);
el17mcd 7:a3ccabdebe2e 80 proj.draw(lcd);
el17mcd 7:a3ccabdebe2e 81 lcd.refresh();
el17mcd 7:a3ccabdebe2e 82 if (hit == true) {
el17mcd 7:a3ccabdebe2e 83 wait(1.5);
el17mcd 7:a3ccabdebe2e 84 lcd.clear();
el17mcd 7:a3ccabdebe2e 85 tankl.lose_health();
el17mcd 8:d4e419dad90f 86 lcd.printString("DONE",0,1);
el17mcd 7:a3ccabdebe2e 87 lcd.refresh();
el17mcd 7:a3ccabdebe2e 88 wait(0.5);
el17mcd 6:5d57c758c31d 89 }
el17mcd 7:a3ccabdebe2e 90 else {wait_ms(50);}
el17mcd 7:a3ccabdebe2e 91 }
el17mcd 8:d4e419dad90f 92 */