
Joshua O'hara 201291390
Dependencies: mbed
Ship/Ship.cpp@8:86cb9a9f8a73, 2020-03-26 (annotated)
- 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?
User | Revision | Line number | New 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 |