ELEC2645 (2018/19) / Mbed 2 deprecated el17rrrs

Dependencies:   mbed Gamepad N5110 mbed-rtos

Committer:
RexRoshan
Date:
Thu May 09 09:49:35 2019 +0000
Revision:
0:d9cf94b41df3
Documentation has been completed and the code has been slightly modified

Who changed what in which revision?

UserRevisionLine numberNew contents of line
RexRoshan 0:d9cf94b41df3 1 #include "Enemy.h"
RexRoshan 0:d9cf94b41df3 2
RexRoshan 0:d9cf94b41df3 3 // nothing doing in the constructor and destructor
RexRoshan 0:d9cf94b41df3 4 Enemy::Enemy()
RexRoshan 0:d9cf94b41df3 5 {
RexRoshan 0:d9cf94b41df3 6
RexRoshan 0:d9cf94b41df3 7 }
RexRoshan 0:d9cf94b41df3 8
RexRoshan 0:d9cf94b41df3 9 Enemy::~Enemy()
RexRoshan 0:d9cf94b41df3 10 {
RexRoshan 0:d9cf94b41df3 11
RexRoshan 0:d9cf94b41df3 12 }
RexRoshan 0:d9cf94b41df3 13
RexRoshan 0:d9cf94b41df3 14 // first enemy sprite
RexRoshan 0:d9cf94b41df3 15 int enemy1 [7][8] = {
RexRoshan 0:d9cf94b41df3 16
RexRoshan 0:d9cf94b41df3 17 {0,1,1,0,0,0,0,1},
RexRoshan 0:d9cf94b41df3 18 {0,0,0,1,1,1,1,1},
RexRoshan 0:d9cf94b41df3 19 {0,0,1,0,0,1,1,0},
RexRoshan 0:d9cf94b41df3 20 {0,1,0,0,1,1,1,0},
RexRoshan 0:d9cf94b41df3 21 {0,0,1,0,0,1,1,0},
RexRoshan 0:d9cf94b41df3 22 {0,0,0,1,1,1,1,1},
RexRoshan 0:d9cf94b41df3 23 {0,1,1,0,0,0,0,1},
RexRoshan 0:d9cf94b41df3 24
RexRoshan 0:d9cf94b41df3 25 };
RexRoshan 0:d9cf94b41df3 26
RexRoshan 0:d9cf94b41df3 27
RexRoshan 0:d9cf94b41df3 28 void Enemy::init(int a,int b) // initialising the x and y position of the enemy
RexRoshan 0:d9cf94b41df3 29 {
RexRoshan 0:d9cf94b41df3 30
RexRoshan 0:d9cf94b41df3 31 _a = a; // x position of the enemy
RexRoshan 0:d9cf94b41df3 32 _b = b; // y position of the enemy
RexRoshan 0:d9cf94b41df3 33 _health = 0; // start health from zero
RexRoshan 0:d9cf94b41df3 34
RexRoshan 0:d9cf94b41df3 35 }
RexRoshan 0:d9cf94b41df3 36
RexRoshan 0:d9cf94b41df3 37 void Enemy::location()
RexRoshan 0:d9cf94b41df3 38 {
RexRoshan 0:d9cf94b41df3 39 int _speed = 5; // distance the enemy moves
RexRoshan 0:d9cf94b41df3 40 srand(time(NULL));
RexRoshan 0:d9cf94b41df3 41 int direction = rand() % 4; // randomise initial direction.
RexRoshan 0:d9cf94b41df3 42
RexRoshan 0:d9cf94b41df3 43 // 4 possibilities. Get random modulo and set location accordingly
RexRoshan 0:d9cf94b41df3 44 if (direction == 0) { // North
RexRoshan 0:d9cf94b41df3 45 _a = _a;
RexRoshan 0:d9cf94b41df3 46 _b += _speed;
RexRoshan 0:d9cf94b41df3 47 } else if (direction == 1) { //South
RexRoshan 0:d9cf94b41df3 48 _a = _a;
RexRoshan 0:d9cf94b41df3 49 _b -= _speed;
RexRoshan 0:d9cf94b41df3 50 } else if (direction == 2) { //West
RexRoshan 0:d9cf94b41df3 51 _a -= _speed;
RexRoshan 0:d9cf94b41df3 52 _b = _b;
RexRoshan 0:d9cf94b41df3 53 } else { // East
RexRoshan 0:d9cf94b41df3 54 _a += _speed;
RexRoshan 0:d9cf94b41df3 55 _b = _b;
RexRoshan 0:d9cf94b41df3 56 }
RexRoshan 0:d9cf94b41df3 57 }
RexRoshan 0:d9cf94b41df3 58
RexRoshan 0:d9cf94b41df3 59 void Enemy::enemy(N5110 &lcd)
RexRoshan 0:d9cf94b41df3 60 {
RexRoshan 0:d9cf94b41df3 61
RexRoshan 0:d9cf94b41df3 62 // Draws the first enemy
RexRoshan 0:d9cf94b41df3 63 lcd.drawSprite(_a,_b,7,8,(int *)enemy1);
RexRoshan 0:d9cf94b41df3 64 }
RexRoshan 0:d9cf94b41df3 65
RexRoshan 0:d9cf94b41df3 66 void Enemy::update() // Moves the position of the enemy when the enemy dies
RexRoshan 0:d9cf94b41df3 67 {
RexRoshan 0:d9cf94b41df3 68
RexRoshan 0:d9cf94b41df3 69 _fast = 2.0; // Movement speed = 2 so that it is not too fast
RexRoshan 0:d9cf94b41df3 70
RexRoshan 0:d9cf94b41df3 71 _b+=_speed; // moves the y-position downwards
RexRoshan 0:d9cf94b41df3 72
RexRoshan 0:d9cf94b41df3 73
RexRoshan 0:d9cf94b41df3 74 }
RexRoshan 0:d9cf94b41df3 75 void Enemy::add_health()
RexRoshan 0:d9cf94b41df3 76 {
RexRoshan 0:d9cf94b41df3 77 // adds health
RexRoshan 0:d9cf94b41df3 78 _health++;
RexRoshan 0:d9cf94b41df3 79 }
RexRoshan 0:d9cf94b41df3 80 int Enemy::get_health()
RexRoshan 0:d9cf94b41df3 81 {
RexRoshan 0:d9cf94b41df3 82 // gets the value of health
RexRoshan 0:d9cf94b41df3 83 return _health;
RexRoshan 0:d9cf94b41df3 84 }
RexRoshan 0:d9cf94b41df3 85
RexRoshan 0:d9cf94b41df3 86
RexRoshan 0:d9cf94b41df3 87 Vector2D Enemy::get_enemy_pos() {
RexRoshan 0:d9cf94b41df3 88 //gets the position of the first enemy
RexRoshan 0:d9cf94b41df3 89 Vector2D e = {_a,_b};
RexRoshan 0:d9cf94b41df3 90 return e;
RexRoshan 0:d9cf94b41df3 91 }
RexRoshan 0:d9cf94b41df3 92
RexRoshan 0:d9cf94b41df3 93 void Enemy::set_enemy_pos(Vector2D e)
RexRoshan 0:d9cf94b41df3 94 {
RexRoshan 0:d9cf94b41df3 95 //sets the position of the first enemy of stage 2
RexRoshan 0:d9cf94b41df3 96 _a = e.x;
RexRoshan 0:d9cf94b41df3 97 _b = e.y;
RexRoshan 0:d9cf94b41df3 98 }