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 "MiniEnemy.h"
RexRoshan 0:d9cf94b41df3 2
RexRoshan 0:d9cf94b41df3 3 // nothing doing in the constructor and destructor
RexRoshan 0:d9cf94b41df3 4 MiniEnemy::MiniEnemy()
RexRoshan 0:d9cf94b41df3 5 {
RexRoshan 0:d9cf94b41df3 6
RexRoshan 0:d9cf94b41df3 7 }
RexRoshan 0:d9cf94b41df3 8
RexRoshan 0:d9cf94b41df3 9 MiniEnemy::~MiniEnemy()
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 e1 [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 void MiniEnemy:: init()
RexRoshan 0:d9cf94b41df3 28 {
RexRoshan 0:d9cf94b41df3 29 _score = 0; // initial score
RexRoshan 0:d9cf94b41df3 30 _fast = 1; // initial speed
RexRoshan 0:d9cf94b41df3 31 _health = 0; // initial health
RexRoshan 0:d9cf94b41df3 32 }
RexRoshan 0:d9cf94b41df3 33
RexRoshan 0:d9cf94b41df3 34 Vector2D MiniEnemy::location()
RexRoshan 0:d9cf94b41df3 35 {
RexRoshan 0:d9cf94b41df3 36
RexRoshan 0:d9cf94b41df3 37 int a = rand() % 33; // randomise initial direction.
RexRoshan 0:d9cf94b41df3 38 int b = rand() % 40; // randomise initial direction.
RexRoshan 0:d9cf94b41df3 39
RexRoshan 0:d9cf94b41df3 40 _location.x = a + 42; // starts from halfway of the screen
RexRoshan 0:d9cf94b41df3 41 _location.y = b;
RexRoshan 0:d9cf94b41df3 42
RexRoshan 0:d9cf94b41df3 43 Vector2D velocity = {_location.x, _location.y};
RexRoshan 0:d9cf94b41df3 44 return velocity;
RexRoshan 0:d9cf94b41df3 45 }
RexRoshan 0:d9cf94b41df3 46
RexRoshan 0:d9cf94b41df3 47 void MiniEnemy::enemy(N5110 &lcd)
RexRoshan 0:d9cf94b41df3 48 {
RexRoshan 0:d9cf94b41df3 49
RexRoshan 0:d9cf94b41df3 50 // draws the first enemy
RexRoshan 0:d9cf94b41df3 51 lcd.drawSprite(_location.x,_location.y,7,8,(int *)e1);
RexRoshan 0:d9cf94b41df3 52 }
RexRoshan 0:d9cf94b41df3 53
RexRoshan 0:d9cf94b41df3 54 void MiniEnemy::update() // moves the position of the enemy when the enemy dies
RexRoshan 0:d9cf94b41df3 55 {
RexRoshan 0:d9cf94b41df3 56
RexRoshan 0:d9cf94b41df3 57 _location.x -=_fast; // moves the y-position downwards
RexRoshan 0:d9cf94b41df3 58
RexRoshan 0:d9cf94b41df3 59
RexRoshan 0:d9cf94b41df3 60 }
RexRoshan 0:d9cf94b41df3 61 void MiniEnemy::add_score()
RexRoshan 0:d9cf94b41df3 62 {
RexRoshan 0:d9cf94b41df3 63 // increments the value of score by 1
RexRoshan 0:d9cf94b41df3 64 _score++;
RexRoshan 0:d9cf94b41df3 65 }
RexRoshan 0:d9cf94b41df3 66 int MiniEnemy::get_score()
RexRoshan 0:d9cf94b41df3 67 {
RexRoshan 0:d9cf94b41df3 68 // gets the value of score
RexRoshan 0:d9cf94b41df3 69 return _score;
RexRoshan 0:d9cf94b41df3 70 }
RexRoshan 0:d9cf94b41df3 71
RexRoshan 0:d9cf94b41df3 72 void MiniEnemy::add_health()
RexRoshan 0:d9cf94b41df3 73 {
RexRoshan 0:d9cf94b41df3 74 // increments the value of score by 1
RexRoshan 0:d9cf94b41df3 75 _health++;
RexRoshan 0:d9cf94b41df3 76 }
RexRoshan 0:d9cf94b41df3 77
RexRoshan 0:d9cf94b41df3 78 void MiniEnemy::add_fast()
RexRoshan 0:d9cf94b41df3 79 {
RexRoshan 0:d9cf94b41df3 80 // increments the value of fast by 1
RexRoshan 0:d9cf94b41df3 81 if (_fast <= 7){
RexRoshan 0:d9cf94b41df3 82 _fast++;
RexRoshan 0:d9cf94b41df3 83 }
RexRoshan 0:d9cf94b41df3 84 }
RexRoshan 0:d9cf94b41df3 85
RexRoshan 0:d9cf94b41df3 86 int MiniEnemy::get_fast()
RexRoshan 0:d9cf94b41df3 87 {
RexRoshan 0:d9cf94b41df3 88 // gets the value of score
RexRoshan 0:d9cf94b41df3 89 return _fast;
RexRoshan 0:d9cf94b41df3 90 }
RexRoshan 0:d9cf94b41df3 91
RexRoshan 0:d9cf94b41df3 92 int MiniEnemy::set_fast()
RexRoshan 0:d9cf94b41df3 93 {
RexRoshan 0:d9cf94b41df3 94 // sets the fast to be zero
RexRoshan 0:d9cf94b41df3 95 _fast = 0;
RexRoshan 0:d9cf94b41df3 96 return _fast;
RexRoshan 0:d9cf94b41df3 97 }
RexRoshan 0:d9cf94b41df3 98
RexRoshan 0:d9cf94b41df3 99 int MiniEnemy::get_health()
RexRoshan 0:d9cf94b41df3 100 {
RexRoshan 0:d9cf94b41df3 101 // gets the value of score
RexRoshan 0:d9cf94b41df3 102 return _health;
RexRoshan 0:d9cf94b41df3 103 }
RexRoshan 0:d9cf94b41df3 104
RexRoshan 0:d9cf94b41df3 105 int MiniEnemy::set_health()
RexRoshan 0:d9cf94b41df3 106 {
RexRoshan 0:d9cf94b41df3 107 // sets the health to be zero
RexRoshan 0:d9cf94b41df3 108 _health = 0;
RexRoshan 0:d9cf94b41df3 109 return _health;
RexRoshan 0:d9cf94b41df3 110 }
RexRoshan 0:d9cf94b41df3 111
RexRoshan 0:d9cf94b41df3 112 Vector2D MiniEnemy::get_enemy_pos() {
RexRoshan 0:d9cf94b41df3 113 //gets the position of the first enemy
RexRoshan 0:d9cf94b41df3 114 Vector2D e = {_location.x,_location.y};
RexRoshan 0:d9cf94b41df3 115 return e;
RexRoshan 0:d9cf94b41df3 116 }
RexRoshan 0:d9cf94b41df3 117
RexRoshan 0:d9cf94b41df3 118 void MiniEnemy::set_enemy_pos(Vector2D e)
RexRoshan 0:d9cf94b41df3 119 {
RexRoshan 0:d9cf94b41df3 120 //sets the position of the first enemy of stage 2
RexRoshan 0:d9cf94b41df3 121 _location.x = e.x;
RexRoshan 0:d9cf94b41df3 122 _location.y = e.y;
RexRoshan 0:d9cf94b41df3 123 }