ELEC2645 (2018/19) / Mbed 2 deprecated EL17MCD

Dependencies:   mbed

Committer:
el17mcd
Date:
Fri Apr 12 12:01:47 2019 +0000
Revision:
10:d4fb12e9e7cd
Parent:
9:fe912235dd71
Child:
11:4e2eb64031a0
!Tank can move in x direction at a specified speed. Tank sprite updated to include turret at varying angles.

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 10:d4fb12e9e7cd 21 #include <cmath>
el17mcd 10:d4fb12e9e7cd 22
el17mcd 7:a3ccabdebe2e 23 #ifdef WITH_TESTING
el17mcd 2:8382613c86a0 24
el17mcd 7:a3ccabdebe2e 25 #endif
el17mcd 7:a3ccabdebe2e 26
el17mcd 7:a3ccabdebe2e 27 /////////////// objects ///////////////
el17mcd 7:a3ccabdebe2e 28 N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
el17mcd 7:a3ccabdebe2e 29 TankL tankl;
el17mcd 7:a3ccabdebe2e 30 Projectile proj;
el17mcd 7:a3ccabdebe2e 31 TanksEngine engine;
el17mcd 7:a3ccabdebe2e 32
el17mcd 2:8382613c86a0 33 void welcome()
el17mcd 2:8382613c86a0 34 {
el17mcd 2:8382613c86a0 35 lcd.clear();
el17mcd 2:8382613c86a0 36 lcd.printString(" ELEC 2645",0,0);
el17mcd 2:8382613c86a0 37 lcd.printString(" Game ",0,1);
el17mcd 2:8382613c86a0 38 lcd.printString(" Project",0,2);
el17mcd 2:8382613c86a0 39 lcd.printString("Max C. Delacoe",0,4);
el17mcd 2:8382613c86a0 40 lcd.printString(" 2011 58344",0,5);
el17mcd 2:8382613c86a0 41 lcd.refresh();
el17mcd 2:8382613c86a0 42 wait(0.2);
el17mcd 2:8382613c86a0 43 }
el17mcd 2:8382613c86a0 44
el17mcd 2:8382613c86a0 45 int main()
el17mcd 2:8382613c86a0 46 {
el17mcd 2:8382613c86a0 47 lcd.init();
el17mcd 9:fe912235dd71 48
el17mcd 10:d4fb12e9e7cd 49 float a;
el17mcd 10:d4fb12e9e7cd 50 float p;
el17mcd 10:d4fb12e9e7cd 51
el17mcd 10:d4fb12e9e7cd 52 int i = 0;
el17mcd 10:d4fb12e9e7cd 53 tankl.set_angle(0);
el17mcd 10:d4fb12e9e7cd 54 tankl.set_speed(4);
el17mcd 10:d4fb12e9e7cd 55 tankl.set_position(40-6, 0);
el17mcd 10:d4fb12e9e7cd 56
el17mcd 10:d4fb12e9e7cd 57
el17mcd 3:087b28bf8b96 58 // welcome(); // display welcome message
el17mcd 2:8382613c86a0 59
el17mcd 5:8a2e96f7fb4d 60 while(1) { // infinite loop
el17mcd 8:d4e419dad90f 61
el17mcd 8:d4e419dad90f 62 lcd.clear();
el17mcd 10:d4fb12e9e7cd 63 tankl.draw(lcd);
el17mcd 8:d4e419dad90f 64 lcd.refresh();
el17mcd 10:d4fb12e9e7cd 65 wait_ms(16.666);
el17mcd 10:d4fb12e9e7cd 66
el17mcd 10:d4fb12e9e7cd 67 a = 50 + 50 * sin((double)i/50);
el17mcd 10:d4fb12e9e7cd 68 p = 1.1*cos((double)i / 60);
el17mcd 10:d4fb12e9e7cd 69
el17mcd 10:d4fb12e9e7cd 70 tankl.set_angle(a);
el17mcd 10:d4fb12e9e7cd 71 tankl.move_position(p);
el17mcd 10:d4fb12e9e7cd 72
el17mcd 10:d4fb12e9e7cd 73 i++;
el17mcd 10:d4fb12e9e7cd 74
el17mcd 8:d4e419dad90f 75 }
el17mcd 8:d4e419dad90f 76 lcd.clear();
el17mcd 8:d4e419dad90f 77 lcd.printString("DONE",0,1);
el17mcd 8:d4e419dad90f 78 lcd.refresh();
el17mcd 8:d4e419dad90f 79 wait(10);
el17mcd 8:d4e419dad90f 80 }