The game is finished

Dependencies:   mbed Gamepad N5110 mbed-rtos

Committer:
RexRoshan
Date:
Thu May 09 14:23:35 2019 +0000
Revision:
14:c7302ffe6eab
Parent:
7:574c66ebd8b0
Final Modification

Who changed what in which revision?

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