Ben Evans / Mbed 2 deprecated Defender_Game

Dependencies:   mbed

Committer:
evanso
Date:
Fri May 15 16:31:25 2020 +0000
Revision:
36:27aa597db3d2
Parent:
34:85ccc16f24d2
Child:
82:3211b31e9421
Created Parent Classes folder to hold all of the parent class files. Shortened function lengths in Game Engine class and organised function definitions.

Who changed what in which revision?

UserRevisionLine numberNew 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 28:a5958497d5ce 11 void Weapons::init(Vector2D sprite_pos, bool sprite_direction,
evanso 28:a5958497d5ce 12 bool bullet_type) {
evanso 36:27aa597db3d2 13 // bullet for alien or for spacship
evanso 28:a5958497d5ce 14 set_direction(sprite_direction);
evanso 28:a5958497d5ce 15 if (bullet_type){
evanso 28:a5958497d5ce 16 calc_bullets_start_pos(sprite_pos, sprite_direction);
evanso 28:a5958497d5ce 17 }else{
evanso 28:a5958497d5ce 18 calc_alien_bullets_start_pos(sprite_pos, sprite_direction);
evanso 28:a5958497d5ce 19 }
evanso 28:a5958497d5ce 20 bullet_delete_counter_ = 0;
evanso 16:1ee3d3804557 21 }
evanso 16:1ee3d3804557 22
evanso 31:6015e8ed859c 23 void Weapons::smart_bomb(N5110 &lcd){
evanso 36:27aa597db3d2 24 // turn backlight off and on twice
evanso 31:6015e8ed859c 25 lcd.backLightOff();
evanso 31:6015e8ed859c 26 wait(0.02);
evanso 31:6015e8ed859c 27 lcd.backLightOn();
evanso 31:6015e8ed859c 28 wait(0.02);
evanso 31:6015e8ed859c 29 lcd.backLightOff();
evanso 31:6015e8ed859c 30 wait(0.02);
evanso 31:6015e8ed859c 31 lcd.backLightOn();
evanso 31:6015e8ed859c 32 }
evanso 31:6015e8ed859c 33
evanso 31:6015e8ed859c 34
evanso 27:8bb2bd97c319 35 void Weapons::calc_bullets_start_pos(Vector2D spaceship_pos,
evanso 27:8bb2bd97c319 36 bool spaceship_sprite_direction_){
evanso 17:25d79cca203a 37 // Sets start position of bullet to spaceships nose
evanso 17:25d79cca203a 38 if (spaceship_sprite_direction_){
evanso 27:8bb2bd97c319 39 position_x_ = spaceship_pos.x + 13;
evanso 27:8bb2bd97c319 40 position_y_ = spaceship_pos.y + 2;
evanso 17:25d79cca203a 41 }else{
evanso 27:8bb2bd97c319 42 position_x_ = spaceship_pos.x;
evanso 27:8bb2bd97c319 43 position_y_ = spaceship_pos.y + 2;
evanso 17:25d79cca203a 44 }
evanso 17:25d79cca203a 45 #ifdef POSITION_BULLET_DEBUG
evanso 27:8bb2bd97c319 46 printf("X = %d\n", position_x_);
evanso 27:8bb2bd97c319 47 printf("Y = %d\n", position_y_);
evanso 17:25d79cca203a 48 #endif
evanso 17:25d79cca203a 49 }
evanso 17:25d79cca203a 50
evanso 18:11068b98e261 51 void Weapons::draw_bullet(N5110 &lcd){
evanso 23:cc44e26c08fa 52 // draws then moves the bullet position
evanso 27:8bb2bd97c319 53 lcd.drawLine(position_x_, position_y_, position_x_+1, position_y_, 1);
evanso 27:8bb2bd97c319 54 if(direction_){
evanso 27:8bb2bd97c319 55 position_x_ += 3;
evanso 19:1bc0a2d22054 56 }else{
evanso 27:8bb2bd97c319 57 position_x_ -= 3;
evanso 19:1bc0a2d22054 58 }
evanso 28:a5958497d5ce 59
evanso 28:a5958497d5ce 60 // increments counter
evanso 28:a5958497d5ce 61 bullet_delete_counter_++;
evanso 28:a5958497d5ce 62 }
evanso 28:a5958497d5ce 63
evanso 28:a5958497d5ce 64 void Weapons::calc_alien_bullets_start_pos(Vector2D alien_pos,
evanso 28:a5958497d5ce 65 bool alien_sprite_direction_){
evanso 28:a5958497d5ce 66 // Sets start position of bullet to middle of alien
evanso 28:a5958497d5ce 67 position_x_ = alien_pos.x + 3;
evanso 28:a5958497d5ce 68 position_y_ = alien_pos.y + 3;
evanso 28:a5958497d5ce 69
evanso 28:a5958497d5ce 70 //gets a random direction for the bullet to travel in
evanso 28:a5958497d5ce 71 set_random_move();
evanso 28:a5958497d5ce 72 }
evanso 28:a5958497d5ce 73
evanso 28:a5958497d5ce 74 void Weapons::draw_alien_bullet(N5110 &lcd,Direction d_){
evanso 28:a5958497d5ce 75 // draws then moves the bullet position
evanso 28:a5958497d5ce 76 lcd.drawLine(position_x_, position_y_, position_x_+1, position_y_, 1);
evanso 28:a5958497d5ce 77
evanso 28:a5958497d5ce 78 //Moves bullet in random direction and accomodates for spaceship movement
evanso 28:a5958497d5ce 79 move_direction();
evanso 34:85ccc16f24d2 80 position_x_ += calc_sprite_movement(d_);
evanso 20:febd920ec29e 81
evanso 20:febd920ec29e 82 // increments counter
evanso 28:a5958497d5ce 83 bullet_delete_counter_++;
evanso 28:a5958497d5ce 84 }
evanso 28:a5958497d5ce 85
evanso 22:053c11a202e1 86 void Weapons::set_pos_one(Vector2D pos){
evanso 27:8bb2bd97c319 87 position_x_ = pos.x;
evanso 27:8bb2bd97c319 88 position_y_ = pos.y;
evanso 22:053c11a202e1 89 }
evanso 22:053c11a202e1 90
evanso 28:a5958497d5ce 91 void Weapons::set_direction(bool sprite_direction){
evanso 28:a5958497d5ce 92 direction_ = sprite_direction;
evanso 20:febd920ec29e 93 }
evanso 20:febd920ec29e 94
evanso 20:febd920ec29e 95 int Weapons::get_bullet_delete_counter(){
evanso 28:a5958497d5ce 96 return bullet_delete_counter_;
evanso 20:febd920ec29e 97 }
evanso 20:febd920ec29e 98
evanso 20:febd920ec29e 99 bool Weapons::get_direction(){
evanso 27:8bb2bd97c319 100 return direction_;
evanso 16:1ee3d3804557 101 }