ELEC2645 (2019/20) / Mbed 2 deprecated ELEC2645_Project_el18zc2

Dependencies:   mbed

Committer:
ChenZirui
Date:
Fri May 29 04:25:22 2020 +0000
Revision:
14:3b4370d5b2c0
Parent:
7:f61ac963eb07
not final

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ChenZirui 5:7207c9b70108 1 #include "Bullet.h"
ChenZirui 5:7207c9b70108 2
ChenZirui 5:7207c9b70108 3
ChenZirui 5:7207c9b70108 4 void Bullet::init(int x,int size,int speed,int height)
ChenZirui 5:7207c9b70108 5 {
ChenZirui 5:7207c9b70108 6 _size = size;
ChenZirui 5:7207c9b70108 7
ChenZirui 7:f61ac963eb07 8 _x = 24;
ChenZirui 7:f61ac963eb07 9 _y = 28;
ChenZirui 5:7207c9b70108 10
ChenZirui 5:7207c9b70108 11 srand(time(NULL));
ChenZirui 7:f61ac963eb07 12 int direction = rand() % 2; // randomise initial direction.
ChenZirui 5:7207c9b70108 13
ChenZirui 5:7207c9b70108 14 // 4 possibilities. Get random modulo and set velocities accordingly
ChenZirui 5:7207c9b70108 15 if (direction == 0) {
ChenZirui 5:7207c9b70108 16 _velocity.x = speed;
ChenZirui 7:f61ac963eb07 17 _velocity.y = -speed;
ChenZirui 5:7207c9b70108 18 } else if (direction == 1) {
ChenZirui 5:7207c9b70108 19 _velocity.x = -speed;
ChenZirui 5:7207c9b70108 20 _velocity.y = -speed;
ChenZirui 7:f61ac963eb07 21 }
ChenZirui 5:7207c9b70108 22 }
ChenZirui 5:7207c9b70108 23
ChenZirui 5:7207c9b70108 24 void Bullet::draw(N5110 &lcd)
ChenZirui 5:7207c9b70108 25 {
ChenZirui 5:7207c9b70108 26 lcd.drawRect(_x,_y,_size,_size,FILL_BLACK);
ChenZirui 7:f61ac963eb07 27 /* if((_y >= 0)&&(_y <= 24))
ChenZirui 5:7207c9b70108 28 {
ChenZirui 7:f61ac963eb07 29 X=_x;
ChenZirui 7:f61ac963eb07 30 Y=_y;
ChenZirui 5:7207c9b70108 31
ChenZirui 5:7207c9b70108 32 }
ChenZirui 7:f61ac963eb07 33 lcd.clearPixel(_x,_y);*/
ChenZirui 5:7207c9b70108 34 }
ChenZirui 5:7207c9b70108 35
ChenZirui 7:f61ac963eb07 36 void Bullet::update(N5110 &lcd)
ChenZirui 5:7207c9b70108 37 {
ChenZirui 5:7207c9b70108 38 _x += _velocity.x;
ChenZirui 5:7207c9b70108 39 _y += _velocity.y;
ChenZirui 7:f61ac963eb07 40 /* if(( _y >= 0)&&( _y <= 24))
ChenZirui 5:7207c9b70108 41 {
ChenZirui 7:f61ac963eb07 42
ChenZirui 7:f61ac963eb07 43 // lcd.clearPixel(_x,_y-1);
ChenZirui 7:f61ac963eb07 44 X=_x;
ChenZirui 7:f61ac963eb07 45 Y=_y;
ChenZirui 5:7207c9b70108 46 }
ChenZirui 7:f61ac963eb07 47 lcd.clearPixel(X,Y-1);*/
ChenZirui 5:7207c9b70108 48 }
ChenZirui 5:7207c9b70108 49
ChenZirui 5:7207c9b70108 50 void Bullet::set_velocity(Vector2D v)
ChenZirui 5:7207c9b70108 51 {
ChenZirui 5:7207c9b70108 52 _velocity.x = v.x;
ChenZirui 5:7207c9b70108 53 _velocity.y = v.y;
ChenZirui 5:7207c9b70108 54 }
ChenZirui 5:7207c9b70108 55
ChenZirui 5:7207c9b70108 56 Vector2D Bullet::get_velocity()
ChenZirui 5:7207c9b70108 57 {
ChenZirui 5:7207c9b70108 58 Vector2D v = {_velocity.x,_velocity.y};
ChenZirui 5:7207c9b70108 59 return v;
ChenZirui 5:7207c9b70108 60 }
ChenZirui 5:7207c9b70108 61
ChenZirui 5:7207c9b70108 62 Vector2D Bullet::get_pos()
ChenZirui 5:7207c9b70108 63 {
ChenZirui 5:7207c9b70108 64 Vector2D p = {_x,_y};
ChenZirui 5:7207c9b70108 65 return p;
ChenZirui 5:7207c9b70108 66 }
ChenZirui 5:7207c9b70108 67
ChenZirui 5:7207c9b70108 68 void Bullet::set_pos(Vector2D p)
ChenZirui 5:7207c9b70108 69 {
ChenZirui 5:7207c9b70108 70 _x = p.x;
ChenZirui 5:7207c9b70108 71 _y = p.y;
ChenZirui 5:7207c9b70108 72 }