Ikenna Adrian Ozoemena 201157039

Dependencies:   mbed

Committer:
ikenna1
Date:
Thu Apr 18 20:09:29 2019 +0000
Revision:
28:6319e928f0aa
Parent:
20:5b4b3bf5795c
Child:
30:711d722f3cef
* added warning sirens when health falls below threshold; * added new enemy shooter

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ikenna1 15:009ccc07bb57 1 #include "Enemy.h"
ikenna1 15:009ccc07bb57 2
ikenna1 15:009ccc07bb57 3 Enemy::Enemy()
ikenna1 15:009ccc07bb57 4 {
ikenna1 15:009ccc07bb57 5
ikenna1 15:009ccc07bb57 6 }
ikenna1 15:009ccc07bb57 7
ikenna1 15:009ccc07bb57 8 Enemy::~Enemy()
ikenna1 15:009ccc07bb57 9 {
ikenna1 15:009ccc07bb57 10
ikenna1 15:009ccc07bb57 11 }
ikenna1 15:009ccc07bb57 12 const int seeker[7][9] = {
ikenna1 15:009ccc07bb57 13 {1,1,0,0,0,0,0,1,1},
ikenna1 15:009ccc07bb57 14 {1,0,1,0,0,0,1,0,1},
ikenna1 15:009ccc07bb57 15 {1,0,0,1,1,1,0,0,1},
ikenna1 15:009ccc07bb57 16 {0,1,0,0,0,0,0,1,0},
ikenna1 15:009ccc07bb57 17 {0,0,1,0,0,0,1,0,0},
ikenna1 15:009ccc07bb57 18 {0,0,1,1,0,1,1,0,0},
ikenna1 15:009ccc07bb57 19 {0,0,0,0,1,0,0,0,0},
ikenna1 15:009ccc07bb57 20 };
ikenna1 28:6319e928f0aa 21 const int shooter[10][11] = {
ikenna1 28:6319e928f0aa 22 {0,0,1,0,0,0,0,0,1,0,0},
ikenna1 28:6319e928f0aa 23 {0,1,0,1,0,0,0,1,0,1,0},
ikenna1 28:6319e928f0aa 24 {1,0,0,1,0,1,0,1,0,0,1},
ikenna1 28:6319e928f0aa 25 {1,0,0,1,1,0,1,1,0,0,1},
ikenna1 28:6319e928f0aa 26 {0,1,0,0,0,0,0,0,0,1,0},
ikenna1 28:6319e928f0aa 27 {0,1,0,0,1,1,1,0,0,1,0},
ikenna1 28:6319e928f0aa 28 {0,0,1,0,0,1,0,0,1,0,0},
ikenna1 28:6319e928f0aa 29 {0,0,0,1,0,0,0,1,0,0,0},
ikenna1 28:6319e928f0aa 30 {0,0,0,0,1,0,1,0,0,0,0},
ikenna1 28:6319e928f0aa 31 {0,0,0,0,0,1,0,0,0,0,0},
ikenna1 28:6319e928f0aa 32 };
ikenna1 15:009ccc07bb57 33 void Enemy::init(int seeker_xpos,int seeker_ypos)
ikenna1 15:009ccc07bb57 34 {
ikenna1 15:009ccc07bb57 35 _seeker_xpos = seeker_xpos;
ikenna1 15:009ccc07bb57 36 _seeker_ypos = seeker_ypos;
ikenna1 15:009ccc07bb57 37
ikenna1 15:009ccc07bb57 38 }
ikenna1 15:009ccc07bb57 39 // Draw the ship ***Note: figure out how to change ship type e.g from basic to devotion
ikenna1 15:009ccc07bb57 40 void Enemy::draw_seeker(N5110 &lcd)
ikenna1 15:009ccc07bb57 41 {
ikenna1 15:009ccc07bb57 42 lcd.drawSprite(_seeker_xpos,_seeker_ypos,7,9,(int *)seeker);
ikenna1 15:009ccc07bb57 43 }
ikenna1 15:009ccc07bb57 44 void Enemy::update_seeker(int ship_xpos, int ship_ypos)
ikenna1 15:009ccc07bb57 45 {
ikenna1 15:009ccc07bb57 46 int rangex = _seeker_xpos - ship_xpos;
ikenna1 15:009ccc07bb57 47 int rangey = _seeker_ypos - ship_ypos;
ikenna1 15:009ccc07bb57 48
ikenna1 15:009ccc07bb57 49 // make seeker move towards ship
ikenna1 15:009ccc07bb57 50 if(rangey < 0) {
ikenna1 15:009ccc07bb57 51 if(rangex < 0) {
ikenna1 15:009ccc07bb57 52 _seeker_xpos = _seeker_xpos + 2;
ikenna1 15:009ccc07bb57 53 } else if(rangex == 0) {
ikenna1 15:009ccc07bb57 54 _seeker_xpos = _seeker_xpos;
ikenna1 15:009ccc07bb57 55 } else {
ikenna1 15:009ccc07bb57 56 _seeker_xpos = _seeker_xpos - 2;
ikenna1 15:009ccc07bb57 57 }
ikenna1 15:009ccc07bb57 58 }
ikenna1 15:009ccc07bb57 59
ikenna1 15:009ccc07bb57 60 // reset seeker to top
ikenna1 15:009ccc07bb57 61 if(_seeker_ypos > 54) {
ikenna1 15:009ccc07bb57 62 _seeker_ypos = 0;
ikenna1 15:009ccc07bb57 63 }
ikenna1 15:009ccc07bb57 64 _seeker_ypos = _seeker_ypos + 2;
ikenna1 20:5b4b3bf5795c 65 // printf("seeker_xpos , seeker_ypos = %d, %d\n", _seeker_xpos, _seeker_ypos);
ikenna1 15:009ccc07bb57 66 }
ikenna1 18:2cc6898de6b2 67 void Enemy::reset_seeker()
ikenna1 18:2cc6898de6b2 68 {
ikenna1 18:2cc6898de6b2 69 _seeker_xpos = 0;
ikenna1 18:2cc6898de6b2 70 _seeker_ypos = 0;
ikenna1 18:2cc6898de6b2 71 }
ikenna1 15:009ccc07bb57 72 Vector2D Enemy::get_seekerpos()
ikenna1 15:009ccc07bb57 73 {
ikenna1 15:009ccc07bb57 74 Vector2D seeker_pos = {_seeker_xpos,_seeker_ypos};
ikenna1 15:009ccc07bb57 75 return seeker_pos;
ikenna1 15:009ccc07bb57 76 }