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.
Weapons/Weapons.cpp@20:febd920ec29e, 2020-05-04 (annotated)
- Committer:
- evanso
- Date:
- Mon May 04 10:47:06 2020 +0000
- Revision:
- 20:febd920ec29e
- Parent:
- 19:1bc0a2d22054
- Child:
- 22:053c11a202e1
Added collision detection so the alien and bullet is deleted if a bullet hits it.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
evanso | 16:1ee3d3804557 | 1 | #include "Weapons.h" |
evanso | 16:1ee3d3804557 | 2 | |
evanso | 16:1ee3d3804557 | 3 | Weapons::Weapons() { |
evanso | 16:1ee3d3804557 | 4 | |
evanso | 16:1ee3d3804557 | 5 | } |
evanso | 16:1ee3d3804557 | 6 | |
evanso | 16:1ee3d3804557 | 7 | Weapons::~Weapons() { |
evanso | 16:1ee3d3804557 | 8 | |
evanso | 16:1ee3d3804557 | 9 | } |
evanso | 16:1ee3d3804557 | 10 | |
evanso | 19:1bc0a2d22054 | 11 | void Weapons::init(Vector2D spaceship_pos, bool spaceship_sprite_direction) { |
evanso | 19:1bc0a2d22054 | 12 | calc_bullets_start_pos(spaceship_pos, spaceship_sprite_direction); |
evanso | 19:1bc0a2d22054 | 13 | set_direction(spaceship_sprite_direction); |
evanso | 20:febd920ec29e | 14 | bullet_delete_cunter_ = 0; |
evanso | 16:1ee3d3804557 | 15 | } |
evanso | 16:1ee3d3804557 | 16 | |
evanso | 17:25d79cca203a | 17 | void Weapons::calc_bullets_start_pos(Vector2D spaceship_pos, bool spaceship_sprite_direction_){ |
evanso | 17:25d79cca203a | 18 | // Sets start position of bullet to spaceships nose |
evanso | 17:25d79cca203a | 19 | if (spaceship_sprite_direction_){ |
evanso | 17:25d79cca203a | 20 | position_x_bullet_ = spaceship_pos.x + 13; |
evanso | 20:febd920ec29e | 21 | position_y_bullet_ = spaceship_pos.y + 2; |
evanso | 17:25d79cca203a | 22 | }else{ |
evanso | 17:25d79cca203a | 23 | position_x_bullet_ = spaceship_pos.x; |
evanso | 20:febd920ec29e | 24 | position_y_bullet_ = spaceship_pos.y + 2; |
evanso | 17:25d79cca203a | 25 | } |
evanso | 17:25d79cca203a | 26 | #ifdef POSITION_BULLET_DEBUG |
evanso | 17:25d79cca203a | 27 | printf("X = %d\n", position_x_bullet_); |
evanso | 17:25d79cca203a | 28 | printf("Y = %d\n", position_y_bullet_); |
evanso | 17:25d79cca203a | 29 | #endif |
evanso | 17:25d79cca203a | 30 | } |
evanso | 17:25d79cca203a | 31 | |
evanso | 18:11068b98e261 | 32 | void Weapons::draw_bullet(N5110 &lcd){ |
evanso | 20:febd920ec29e | 33 | // draws then moves the bullet |
evanso | 18:11068b98e261 | 34 | lcd.drawLine(position_x_bullet_, position_y_bullet_, position_x_bullet_+1, position_y_bullet_, 1); |
evanso | 19:1bc0a2d22054 | 35 | if(bullet_direction_){ |
evanso | 19:1bc0a2d22054 | 36 | position_x_bullet_ += 3; |
evanso | 19:1bc0a2d22054 | 37 | }else{ |
evanso | 19:1bc0a2d22054 | 38 | position_x_bullet_ -= 3; |
evanso | 19:1bc0a2d22054 | 39 | } |
evanso | 20:febd920ec29e | 40 | |
evanso | 20:febd920ec29e | 41 | // increments counter |
evanso | 20:febd920ec29e | 42 | bullet_delete_cunter_++; |
evanso | 18:11068b98e261 | 43 | } |
evanso | 18:11068b98e261 | 44 | |
evanso | 18:11068b98e261 | 45 | Vector2D Weapons::get_pos_one(){ |
evanso | 17:25d79cca203a | 46 | Vector2D pos = {position_x_bullet_,position_y_bullet_}; |
evanso | 17:25d79cca203a | 47 | return pos; |
evanso | 18:11068b98e261 | 48 | } |
evanso | 18:11068b98e261 | 49 | |
evanso | 18:11068b98e261 | 50 | Vector2D Weapons::get_pos_two(){ |
evanso | 18:11068b98e261 | 51 | Vector2D pos = {position_x_bullet_+1,position_y_bullet_}; |
evanso | 18:11068b98e261 | 52 | return pos; |
evanso | 19:1bc0a2d22054 | 53 | } |
evanso | 19:1bc0a2d22054 | 54 | |
evanso | 20:febd920ec29e | 55 | void Weapons::set_direction(bool spaceship_sprite_direction){ |
evanso | 19:1bc0a2d22054 | 56 | bullet_direction_ = spaceship_sprite_direction; |
evanso | 20:febd920ec29e | 57 | } |
evanso | 20:febd920ec29e | 58 | |
evanso | 20:febd920ec29e | 59 | int Weapons::get_bullet_delete_counter(){ |
evanso | 20:febd920ec29e | 60 | return bullet_delete_cunter_; |
evanso | 20:febd920ec29e | 61 | } |
evanso | 20:febd920ec29e | 62 | |
evanso | 20:febd920ec29e | 63 | bool Weapons::get_direction(){ |
evanso | 20:febd920ec29e | 64 | return bullet_direction_; |
evanso | 16:1ee3d3804557 | 65 | } |