Joshua O'hara 201291390

Dependencies:   mbed

Committer:
josh_ohara
Date:
Thu Mar 26 15:24:49 2020 +0000
Revision:
8:86cb9a9f8a73
Parent:
7:06a2558155f0
Child:
9:8e695df3cc36
6 hours of debugging later.... Have a functioning simple ship

Who changed what in which revision?

UserRevisionLine numberNew contents of line
josh_ohara 3:8a140aa1ddcd 1 #include "Ship.h"
josh_ohara 2:c2316b659b97 2
josh_ohara 8:86cb9a9f8a73 3 N5110 lcdShip;
josh_ohara 8:86cb9a9f8a73 4
josh_ohara 8:86cb9a9f8a73 5 Ship::Ship()
josh_ohara 8:86cb9a9f8a73 6 {
josh_ohara 8:86cb9a9f8a73 7
josh_ohara 8:86cb9a9f8a73 8 }
josh_ohara 8:86cb9a9f8a73 9
josh_ohara 8:86cb9a9f8a73 10 Ship::~Ship()
josh_ohara 8:86cb9a9f8a73 11 {
josh_ohara 8:86cb9a9f8a73 12
josh_ohara 8:86cb9a9f8a73 13 }
josh_ohara 8:86cb9a9f8a73 14
josh_ohara 6:5bea67cc96f9 15 void Ship::init(int height, int width)
josh_ohara 2:c2316b659b97 16 {
josh_ohara 7:06a2558155f0 17 X = WIDTH/2 - width/2;
josh_ohara 8:86cb9a9f8a73 18 Y = HEIGHT - 2;
josh_ohara 6:5bea67cc96f9 19 Height = height;
josh_ohara 6:5bea67cc96f9 20 Width = width;
josh_ohara 7:06a2558155f0 21 Speed = 0;
josh_ohara 8:86cb9a9f8a73 22
josh_ohara 8:86cb9a9f8a73 23 //lcdShip.printString("ShipInit",0,1);
josh_ohara 8:86cb9a9f8a73 24 //lcdShip.refresh();
josh_ohara 8:86cb9a9f8a73 25 //wait(2);
josh_ohara 8:86cb9a9f8a73 26 //char buffer[14];
josh_ohara 8:86cb9a9f8a73 27 //sprintf(buffer,"X = %2d ",X);
josh_ohara 8:86cb9a9f8a73 28 //lcdShip.printString(buffer,0,5);
josh_ohara 8:86cb9a9f8a73 29 //lcdShip.refresh();
josh_ohara 8:86cb9a9f8a73 30 wait(2);
josh_ohara 8:86cb9a9f8a73 31
josh_ohara 2:c2316b659b97 32 }
josh_ohara 2:c2316b659b97 33
josh_ohara 8:86cb9a9f8a73 34
josh_ohara 8:86cb9a9f8a73 35 void Ship::render(N5110 &lcd)
josh_ohara 8:86cb9a9f8a73 36 {
josh_ohara 2:c2316b659b97 37 lcd.drawRect(X,Y,Width,Height,FILL_BLACK);
josh_ohara 2:c2316b659b97 38 }
josh_ohara 2:c2316b659b97 39
josh_ohara 2:c2316b659b97 40 void Ship::update(Direction d,float mag)
josh_ohara 2:c2316b659b97 41 {
josh_ohara 2:c2316b659b97 42 Speed = int(mag*10.0f);
josh_ohara 2:c2316b659b97 43
josh_ohara 2:c2316b659b97 44 if (d == E) {
josh_ohara 2:c2316b659b97 45 X+=Speed;
josh_ohara 2:c2316b659b97 46 } else if (d == NE) {
josh_ohara 2:c2316b659b97 47 X+=0.5*Speed;
josh_ohara 2:c2316b659b97 48 } else if (d == SE) {
josh_ohara 2:c2316b659b97 49 X+=0.5*Speed;
josh_ohara 2:c2316b659b97 50 } else if (d == W) {
josh_ohara 2:c2316b659b97 51 X-=Speed;
josh_ohara 2:c2316b659b97 52 } else if (d == NW) {
josh_ohara 2:c2316b659b97 53 X-=0.5*Speed;
josh_ohara 2:c2316b659b97 54 } else if (d == SW) {
josh_ohara 2:c2316b659b97 55 X-=0.5*Speed;
josh_ohara 2:c2316b659b97 56 }
josh_ohara 2:c2316b659b97 57
josh_ohara 2:c2316b659b97 58 if (X < 1) {
josh_ohara 2:c2316b659b97 59 X = 1;
josh_ohara 2:c2316b659b97 60 }
josh_ohara 8:86cb9a9f8a73 61 if (X > WIDTH - Width - 1) {
josh_ohara 8:86cb9a9f8a73 62 X = WIDTH - Width - 1;
josh_ohara 2:c2316b659b97 63 }
josh_ohara 8:86cb9a9f8a73 64
josh_ohara 8:86cb9a9f8a73 65 //char buffer[14];
josh_ohara 8:86cb9a9f8a73 66 //sprintf(buffer,"X = %2d ",X);
josh_ohara 8:86cb9a9f8a73 67 //lcdShip.printString(buffer,0,5);
josh_ohara 8:86cb9a9f8a73 68 //lcdShip.refresh();
josh_ohara 8:86cb9a9f8a73 69 //wait(2);
josh_ohara 8:86cb9a9f8a73 70
josh_ohara 8:86cb9a9f8a73 71 //lcdShip.printString("ShipUpdate",0,1);
josh_ohara 8:86cb9a9f8a73 72 //lcdShip.refresh();
josh_ohara 8:86cb9a9f8a73 73 //wait(5);
josh_ohara 2:c2316b659b97 74 }
josh_ohara 2:c2316b659b97 75
josh_ohara 2:c2316b659b97 76 Vector2D Ship::get_position() {
josh_ohara 2:c2316b659b97 77 Vector2D p = {X,Y};
josh_ohara 2:c2316b659b97 78 return p;
josh_ohara 2:c2316b659b97 79 }
josh_ohara 3:8a140aa1ddcd 80
josh_ohara 3:8a140aa1ddcd 81 int Ship::get_height() {
josh_ohara 3:8a140aa1ddcd 82 int height = Height;
josh_ohara 3:8a140aa1ddcd 83 return height;
josh_ohara 3:8a140aa1ddcd 84 }
josh_ohara 3:8a140aa1ddcd 85
josh_ohara 3:8a140aa1ddcd 86 int Ship::get_width() {
josh_ohara 3:8a140aa1ddcd 87 int width = Width;
josh_ohara 3:8a140aa1ddcd 88 return width;
josh_ohara 3:8a140aa1ddcd 89 }
josh_ohara 4:18a1fc4c38e0 90
josh_ohara 3:8a140aa1ddcd 91
josh_ohara 2:c2316b659b97 92
josh_ohara 2:c2316b659b97 93