Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
main.cpp@10:d4fb12e9e7cd, 2019-04-12 (annotated)
- 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?
| User | Revision | Line number | New 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 | } |