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
Ship/Ship.cpp@14:88ca5b1a111a, 2019-04-10 (annotated)
- Committer:
- ikenna1
- Date:
- Wed Apr 10 18:50:17 2019 +0000
- Revision:
- 14:88ca5b1a111a
- Parent:
- 13:e114d362186d
- Child:
- 26:a53d41adf40b
* made changes to imperions' weapons by adding delays;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ikenna1 | 5:bb6edc5b5be3 | 1 | #include "Ship.h" |
ikenna1 | 5:bb6edc5b5be3 | 2 | Ship::Ship() |
ikenna1 | 5:bb6edc5b5be3 | 3 | { |
ikenna1 | 5:bb6edc5b5be3 | 4 | |
ikenna1 | 5:bb6edc5b5be3 | 5 | } |
ikenna1 | 5:bb6edc5b5be3 | 6 | |
ikenna1 | 5:bb6edc5b5be3 | 7 | Ship::~Ship() |
ikenna1 | 5:bb6edc5b5be3 | 8 | { |
ikenna1 | 5:bb6edc5b5be3 | 9 | |
ikenna1 | 5:bb6edc5b5be3 | 10 | } |
ikenna1 | 6:8473dacbeb65 | 11 | // data needed for first ship: basic |
ikenna1 | 5:bb6edc5b5be3 | 12 | const int basic[6][9] = { |
ikenna1 | 5:bb6edc5b5be3 | 13 | { 0,0,0,0,1,0,0,0,0 }, |
ikenna1 | 5:bb6edc5b5be3 | 14 | { 0,0,0,1,1,1,0,0,0 }, |
ikenna1 | 5:bb6edc5b5be3 | 15 | { 0,0,1,1,0,1,1,0,0 }, |
ikenna1 | 5:bb6edc5b5be3 | 16 | { 0,0,1,1,0,1,1,0,0 }, |
ikenna1 | 5:bb6edc5b5be3 | 17 | { 1,0,1,1,0,1,1,0,1 }, |
ikenna1 | 5:bb6edc5b5be3 | 18 | { 0,1,1,1,1,1,1,1,0 }, |
ikenna1 | 5:bb6edc5b5be3 | 19 | }; |
ikenna1 | 11:73cd744ffa80 | 20 | const int imperion[10][7] = { |
ikenna1 | 11:73cd744ffa80 | 21 | {0,1,0,0,0,1,0}, |
ikenna1 | 11:73cd744ffa80 | 22 | {0,1,0,0,0,1,0}, |
ikenna1 | 11:73cd744ffa80 | 23 | {1,1,0,0,0,1,1}, |
ikenna1 | 11:73cd744ffa80 | 24 | {0,1,0,0,0,1,0}, |
ikenna1 | 11:73cd744ffa80 | 25 | {0,1,0,0,0,1,0}, |
ikenna1 | 11:73cd744ffa80 | 26 | {0,1,0,0,0,1,0}, |
ikenna1 | 11:73cd744ffa80 | 27 | {0,1,1,0,1,1,0}, |
ikenna1 | 11:73cd744ffa80 | 28 | {1,0,0,1,0,0,1}, |
ikenna1 | 11:73cd744ffa80 | 29 | {0,0,1,0,1,0,0}, |
ikenna1 | 11:73cd744ffa80 | 30 | {0,0,0,1,0,0,0}, |
ikenna1 | 11:73cd744ffa80 | 31 | }; |
ikenna1 | 6:8473dacbeb65 | 32 | /* |
ikenna1 | 5:bb6edc5b5be3 | 33 | int basic_width = 9; |
ikenna1 | 5:bb6edc5b5be3 | 34 | int basic_height = 6; |
ikenna1 | 5:bb6edc5b5be3 | 35 | int basic_speed = 5; |
ikenna1 | 5:bb6edc5b5be3 | 36 | */ |
ikenna1 | 5:bb6edc5b5be3 | 37 | |
ikenna1 | 5:bb6edc5b5be3 | 38 | // Set basic ship to be default |
ikenna1 | 9:241a1a7d8527 | 39 | void Ship::init(int ship_width,int ship_height,int ship_speed,int ship_xpos,int ship_ypos) |
ikenna1 | 5:bb6edc5b5be3 | 40 | { |
ikenna1 | 5:bb6edc5b5be3 | 41 | _ship_width = ship_width; |
ikenna1 | 5:bb6edc5b5be3 | 42 | _ship_height = ship_height; |
ikenna1 | 9:241a1a7d8527 | 43 | _ship_speed = ship_speed; |
ikenna1 | 5:bb6edc5b5be3 | 44 | _ship_xpos = ship_xpos; |
ikenna1 | 5:bb6edc5b5be3 | 45 | _ship_xpos = ship_ypos; |
ikenna1 | 6:8473dacbeb65 | 46 | // _ship_shape[_ship_height][_ship_width] = ship_shape; |
ikenna1 | 5:bb6edc5b5be3 | 47 | } |
ikenna1 | 5:bb6edc5b5be3 | 48 | // Draw the ship ***Note: figure out how to change ship type e.g from basic to devotion |
ikenna1 | 6:8473dacbeb65 | 49 | void Ship::draw_ship(N5110 &lcd) |
ikenna1 | 5:bb6edc5b5be3 | 50 | { |
ikenna1 | 5:bb6edc5b5be3 | 51 | lcd.drawSprite(_ship_xpos,_ship_ypos,6,9,(int *)basic); |
ikenna1 | 5:bb6edc5b5be3 | 52 | } |
ikenna1 | 11:73cd744ffa80 | 53 | void Ship::draw_imperion(N5110 &lcd) |
ikenna1 | 11:73cd744ffa80 | 54 | { |
ikenna1 | 11:73cd744ffa80 | 55 | lcd.drawSprite(_ship_xpos,_ship_ypos,10,7,(int *)imperion); |
ikenna1 | 11:73cd744ffa80 | 56 | } |
ikenna1 | 5:bb6edc5b5be3 | 57 | |
ikenna1 | 9:241a1a7d8527 | 58 | void Ship::update_ship(float x_joystick,float y_joystick) |
ikenna1 | 9:241a1a7d8527 | 59 | { // Only change position if joystick is reasonably moved |
ikenna1 | 5:bb6edc5b5be3 | 60 | if(-0.25 > x_joystick || x_joystick > 0.25 || -0.25 > y_joystick || y_joystick > 0.25) { |
ikenna1 | 9:241a1a7d8527 | 61 | // Update positions using joystick and the intended ships speed |
ikenna1 | 9:241a1a7d8527 | 62 | _ship_xpos = _ship_xpos + (x_joystick*_ship_speed); |
ikenna1 | 9:241a1a7d8527 | 63 | _ship_ypos = _ship_ypos - (y_joystick*_ship_speed); |
ikenna1 | 9:241a1a7d8527 | 64 | |
ikenna1 | 5:bb6edc5b5be3 | 65 | // Dont let sprite move out of screen |
ikenna1 | 9:241a1a7d8527 | 66 | if(_ship_xpos < 0) { |
ikenna1 | 9:241a1a7d8527 | 67 | _ship_xpos = 0; |
ikenna1 | 9:241a1a7d8527 | 68 | } |
ikenna1 | 9:241a1a7d8527 | 69 | if(_ship_xpos > (84 - (_ship_width))) { |
ikenna1 | 9:241a1a7d8527 | 70 | _ship_xpos = 84 - _ship_width; |
ikenna1 | 9:241a1a7d8527 | 71 | } |
ikenna1 | 9:241a1a7d8527 | 72 | if(_ship_ypos < 0) { |
ikenna1 | 9:241a1a7d8527 | 73 | _ship_ypos = 0; |
ikenna1 | 9:241a1a7d8527 | 74 | } |
ikenna1 | 9:241a1a7d8527 | 75 | if(_ship_ypos > (48 - (_ship_height))) { |
ikenna1 | 9:241a1a7d8527 | 76 | _ship_ypos = 48 - _ship_height; |
ikenna1 | 5:bb6edc5b5be3 | 77 | } |
ikenna1 | 5:bb6edc5b5be3 | 78 | } |
ikenna1 | 9:241a1a7d8527 | 79 | // printf("y_joysticzk = %f\n",y_joystick); |
ikenna1 | 9:241a1a7d8527 | 80 | // printf("x_joystick = %f\n",x_joystick); |
ikenna1 | 5:bb6edc5b5be3 | 81 | } |
ikenna1 | 5:bb6edc5b5be3 | 82 | // returns the current ship position on screen as a vector |
ikenna1 | 6:8473dacbeb65 | 83 | Vector2D Ship::get_pos() |
ikenna1 | 5:bb6edc5b5be3 | 84 | { |
ikenna1 | 5:bb6edc5b5be3 | 85 | Vector2D ship_pos = {_ship_xpos,_ship_ypos}; |
ikenna1 | 5:bb6edc5b5be3 | 86 | return ship_pos; |
ikenna1 | 5:bb6edc5b5be3 | 87 | } |
ikenna1 | 5:bb6edc5b5be3 | 88 | |
ikenna1 | 14:88ca5b1a111a | 89 | void Ship::set_dimensions(int ship_width, int ship_height) |
ikenna1 | 11:73cd744ffa80 | 90 | { |
ikenna1 | 11:73cd744ffa80 | 91 | _ship_width = ship_width; |
ikenna1 | 11:73cd744ffa80 | 92 | _ship_height = ship_height; |
ikenna1 | 11:73cd744ffa80 | 93 | } |
ikenna1 | 11:73cd744ffa80 | 94 | |
ikenna1 | 5:bb6edc5b5be3 | 95 | /****Note: if you make all the ships the same size, you could then creare a enum for them ship.[ enum class Ship {basic, devotion}; ] |
ikenna1 | 5:bb6edc5b5be3 | 96 | then, you can declare a new variable belonging to the enum Ship, ship. then to set a ships sprite simply use the variable to test if |
ikenna1 | 6:8473dacbeb65 | 97 | the ship is correct and create an if function to draw the appropriate ship |
ikenna1 | 6:8473dacbeb65 | 98 | */ |