Laila Al Badwawi 200906179 SpaceInvaders I declare this my own independent work and understand the university rules on plagiarism.

Dependencies:   mbed

Committer:
fy14lkaa
Date:
Sat Apr 20 00:48:05 2019 +0000
Revision:
28:4786e81ce3e3
Child:
91:f9e2ff484014
declared an accessor function [Vector2D get_pos();] to return the position of the bullet.

Who changed what in which revision?

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