Ikenna Adrian Ozoemena 201157039
Dependencies: mbed
Enemy/Enemy.cpp@28:6319e928f0aa, 2019-04-18 (annotated)
- 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?
User | Revision | Line number | New 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 | } |