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

Dependencies:   mbed

Committer:
fy14lkaa
Date:
Sun Apr 28 19:44:34 2019 +0000
Revision:
91:f9e2ff484014
Parent:
28:4786e81ce3e3
Child:
92:8a1b14488ca5
added draw sprite to draw the alien in Alien.cpp

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 91:f9e2ff484014 14
fy14lkaa 91:f9e2ff484014 15 const int Alien[12][10] = {
fy14lkaa 91:f9e2ff484014 16 { 0,0,0,0,0,1,1,1,0,0 },
fy14lkaa 91:f9e2ff484014 17 { 0,0,0,0,0,1,1,1,0,0 },
fy14lkaa 91:f9e2ff484014 18 { 0,0,0,1,1,1,1,0,0,0 },
fy14lkaa 91:f9e2ff484014 19 { 0,0,1,1,1,1,0,1,0,0 },
fy14lkaa 91:f9e2ff484014 20 { 0,0,1,1,1,1,0,1,0,0 },
fy14lkaa 91:f9e2ff484014 21 { 0,0,1,1,1,1,0,1,0,0 },
fy14lkaa 91:f9e2ff484014 22 { 0,0,1,1,1,1,0,1,0,0 },
fy14lkaa 91:f9e2ff484014 23 { 0,0,1,1,1,1,0,1,0,0 },
fy14lkaa 91:f9e2ff484014 24 { 0,0,1,1,1,1,0,1,0,0 },
fy14lkaa 91:f9e2ff484014 25 { 0,0,1,1,1,1,0,1,0,0 },
fy14lkaa 91:f9e2ff484014 26 { 0,0,1,1,1,1,0,1,0,0 },
fy14lkaa 91:f9e2ff484014 27 { 0,0,1,1,1,1,0,1,0,0 },
fy14lkaa 91:f9e2ff484014 28
fy14lkaa 91:f9e2ff484014 29 };
fy14lkaa 91:f9e2ff484014 30
fy14lkaa 91:f9e2ff484014 31
fy14lkaa 91:f9e2ff484014 32
fy14lkaa 91:f9e2ff484014 33
fy14lkaa 28:4786e81ce3e3 34 void Alien::init(int size,int speed)
fy14lkaa 28:4786e81ce3e3 35 {
fy14lkaa 28:4786e81ce3e3 36
fy14lkaa 28:4786e81ce3e3 37 _size = size;
fy14lkaa 28:4786e81ce3e3 38
fy14lkaa 28:4786e81ce3e3 39
fy14lkaa 28:4786e81ce3e3 40
fy14lkaa 28:4786e81ce3e3 41
fy14lkaa 28:4786e81ce3e3 42
fy14lkaa 28:4786e81ce3e3 43 srand(time(NULL));
fy14lkaa 28:4786e81ce3e3 44 int direction = rand() % 8; // randomise initial direction.
fy14lkaa 28:4786e81ce3e3 45
fy14lkaa 28:4786e81ce3e3 46 // 4 possibilities. Get random modulo and set velocities accordingly
fy14lkaa 28:4786e81ce3e3 47 if (direction == 0) {
fy14lkaa 28:4786e81ce3e3 48 _velocity.x = speed;
fy14lkaa 28:4786e81ce3e3 49 _velocity.y = speed;
fy14lkaa 28:4786e81ce3e3 50 } else if (direction == 1) {
fy14lkaa 28:4786e81ce3e3 51 _velocity.x = speed;
fy14lkaa 28:4786e81ce3e3 52 _velocity.y = -speed;
fy14lkaa 28:4786e81ce3e3 53 } else if (direction == 2) {
fy14lkaa 28:4786e81ce3e3 54 _velocity.x = speed;
fy14lkaa 28:4786e81ce3e3 55 _velocity.y = speed;
fy14lkaa 28:4786e81ce3e3 56 } else {
fy14lkaa 28:4786e81ce3e3 57 _velocity.x = -speed;
fy14lkaa 28:4786e81ce3e3 58 _velocity.y = -speed;
fy14lkaa 28:4786e81ce3e3 59 }
fy14lkaa 28:4786e81ce3e3 60 }
fy14lkaa 28:4786e81ce3e3 61
fy14lkaa 28:4786e81ce3e3 62
fy14lkaa 28:4786e81ce3e3 63 void Alien::draw(N5110 &lcd)
fy14lkaa 28:4786e81ce3e3 64 {
fy14lkaa 91:f9e2ff484014 65 lcd.drawSprite(x_Alien,y_Alien,12,10,(int *)Alien);
fy14lkaa 91:f9e2ff484014 66
fy14lkaa 28:4786e81ce3e3 67 }
fy14lkaa 28:4786e81ce3e3 68
fy14lkaa 28:4786e81ce3e3 69 void Alien::update()
fy14lkaa 28:4786e81ce3e3 70 {
fy14lkaa 28:4786e81ce3e3 71 _x += _velocity.x;
fy14lkaa 28:4786e81ce3e3 72 _y += _velocity.y;
fy14lkaa 28:4786e81ce3e3 73 }
fy14lkaa 28:4786e81ce3e3 74
fy14lkaa 28:4786e81ce3e3 75 void Alien::set_velocity(Vector2D v)
fy14lkaa 28:4786e81ce3e3 76 {
fy14lkaa 28:4786e81ce3e3 77 _velocity.x = v.x;
fy14lkaa 28:4786e81ce3e3 78 _velocity.y = v.y;
fy14lkaa 28:4786e81ce3e3 79 }
fy14lkaa 28:4786e81ce3e3 80
fy14lkaa 28:4786e81ce3e3 81 Vector2D Alien::get_velocity()
fy14lkaa 28:4786e81ce3e3 82 {
fy14lkaa 28:4786e81ce3e3 83 Vector2D v = {_velocity.x,_velocity.y};
fy14lkaa 28:4786e81ce3e3 84 return v;
fy14lkaa 28:4786e81ce3e3 85 }
fy14lkaa 28:4786e81ce3e3 86
fy14lkaa 28:4786e81ce3e3 87 Vector2D Alien::get_pos()
fy14lkaa 28:4786e81ce3e3 88 {
fy14lkaa 28:4786e81ce3e3 89 Vector2D p = {_x,_y};
fy14lkaa 28:4786e81ce3e3 90 return p;
fy14lkaa 28:4786e81ce3e3 91 }