Projectile Library

Committer:
ll14c4p
Date:
Thu May 04 11:36:22 2017 +0000
Revision:
11:aa2ca5b358fe
Parent:
9:64ba68ae2640
+Deoxygen

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ll14c4p 0:6914458c54cd 1 #include "Projectile.h"
ll14c4p 1:2aee0cb1ebf9 2 #include "Player.h"
ll14c4p 0:6914458c54cd 3
ll14c4p 0:6914458c54cd 4 Projectile::Projectile()
ll14c4p 0:6914458c54cd 5 {
ll14c4p 0:6914458c54cd 6
ll14c4p 0:6914458c54cd 7 }
ll14c4p 0:6914458c54cd 8
ll14c4p 0:6914458c54cd 9 Projectile::~Projectile()
ll14c4p 0:6914458c54cd 10 {
ll14c4p 0:6914458c54cd 11
ll14c4p 1:2aee0cb1ebf9 12 }
ll14c4p 1:2aee0cb1ebf9 13
ll14c4p 9:64ba68ae2640 14 //Obtains the player position coordinates in the initialisation stage.
ll14c4p 4:977109f7b9f6 15 void Projectile::init(int playerx, int playery)
ll14c4p 1:2aee0cb1ebf9 16 {
ll14c4p 6:70b35ebfa8c8 17 //printf("playerxy proj = %d %d \n", playerx, playery);
ll14c4p 4:977109f7b9f6 18 _playerx = playerx;
ll14c4p 4:977109f7b9f6 19 _playery = playery;
ll14c4p 1:2aee0cb1ebf9 20 //Make intial position of projectile = centre of player
ll14c4p 3:70c599d9f191 21
ll14c4p 1:2aee0cb1ebf9 22 }
ll14c4p 1:2aee0cb1ebf9 23
ll14c4p 3:70c599d9f191 24
ll14c4p 3:70c599d9f191 25
ll14c4p 1:2aee0cb1ebf9 26 void Projectile::draw(N5110 &lcd)
ll14c4p 3:70c599d9f191 27 {
ll14c4p 9:64ba68ae2640 28 _velocity.x = 0; //Projectile doesn't move sideways.
ll14c4p 9:64ba68ae2640 29 _velocity.y = -7; //Projectile moves upwards on screen.
ll14c4p 3:70c599d9f191 30
ll14c4p 4:977109f7b9f6 31
ll14c4p 6:70b35ebfa8c8 32 //printf("playerxy projdraw = %d %d \n", _playerx, _playery);
ll14c4p 3:70c599d9f191 33
ll14c4p 3:70c599d9f191 34
ll14c4p 9:64ba68ae2640 35 //Resets projectile if it reaches the top of the screen.
ll14c4p 3:70c599d9f191 36 if(_y <= -1){
ll14c4p 3:70c599d9f191 37 m = 0;
ll14c4p 3:70c599d9f191 38 }
ll14c4p 7:50b6d2c95156 39
ll14c4p 9:64ba68ae2640 40 //Sets projectile spawn location onto the player sprite.
ll14c4p 3:70c599d9f191 41 if(m == 0){
ll14c4p 8:36610092060f 42 _x = _playerx +2;
ll14c4p 8:36610092060f 43 _y = _playery;
ll14c4p 3:70c599d9f191 44 m = m+1;
ll14c4p 3:70c599d9f191 45 }
ll14c4p 9:64ba68ae2640 46 lcd.drawRect(_x,_y,2,2,FILL_BLACK); //Projectile is a 2x2 square.
ll14c4p 6:70b35ebfa8c8 47 //printf("projdrawn %d %d \n", _x, _y);
ll14c4p 4:977109f7b9f6 48 //printf("playerpos in proj = %d %d \n", playerx, playery);
ll14c4p 3:70c599d9f191 49
ll14c4p 1:2aee0cb1ebf9 50 }
ll14c4p 1:2aee0cb1ebf9 51
ll14c4p 9:64ba68ae2640 52 void Projectile::update() //Updates projectile on screen.
ll14c4p 1:2aee0cb1ebf9 53 {
ll14c4p 1:2aee0cb1ebf9 54 _x += _velocity.x;
ll14c4p 1:2aee0cb1ebf9 55 _y += _velocity.y;
ll14c4p 1:2aee0cb1ebf9 56 }
ll14c4p 1:2aee0cb1ebf9 57
ll14c4p 9:64ba68ae2640 58
ll14c4p 1:2aee0cb1ebf9 59
ll14c4p 9:64ba68ae2640 60 Vector2D Projectile::get_pos() //Obtains the position of the projectile, used to check if a collision occurs.
ll14c4p 1:2aee0cb1ebf9 61 {
ll14c4p 3:70c599d9f191 62 Vector2D projpos = {_x,_y};
ll14c4p 4:977109f7b9f6 63 //printf("projpos = %f %f \n", projpos.x, projpos.y);
ll14c4p 3:70c599d9f191 64 return projpos;
ll14c4p 6:70b35ebfa8c8 65 }
ll14c4p 6:70b35ebfa8c8 66
ll14c4p 9:64ba68ae2640 67 void Projectile::set_pos(Vector2D p) //Used to update the projectile location after colliding with another object.
ll14c4p 6:70b35ebfa8c8 68 {
ll14c4p 6:70b35ebfa8c8 69 _x = p.x;
ll14c4p 6:70b35ebfa8c8 70 _y = p.y;
ll14c4p 0:6914458c54cd 71 }