Ikenna Adrian Ozoemena 201157039
Dependencies: mbed
Enemy/Enemy.cpp@18:2cc6898de6b2, 2019-04-13 (annotated)
- Committer:
- ikenna1
- Date:
- Sat Apr 13 14:26:05 2019 +0000
- Revision:
- 18:2cc6898de6b2
- Parent:
- 15:009ccc07bb57
- Child:
- 20:5b4b3bf5795c
Began working on collision particularly between seeker ships and players ship
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 | 15:009ccc07bb57 | 21 | |
ikenna1 | 15:009ccc07bb57 | 22 | void Enemy::init(int seeker_xpos,int seeker_ypos) |
ikenna1 | 15:009ccc07bb57 | 23 | { |
ikenna1 | 15:009ccc07bb57 | 24 | _seeker_xpos = seeker_xpos; |
ikenna1 | 15:009ccc07bb57 | 25 | _seeker_ypos = seeker_ypos; |
ikenna1 | 15:009ccc07bb57 | 26 | |
ikenna1 | 15:009ccc07bb57 | 27 | } |
ikenna1 | 15:009ccc07bb57 | 28 | // Draw the ship ***Note: figure out how to change ship type e.g from basic to devotion |
ikenna1 | 15:009ccc07bb57 | 29 | void Enemy::draw_seeker(N5110 &lcd) |
ikenna1 | 15:009ccc07bb57 | 30 | { |
ikenna1 | 15:009ccc07bb57 | 31 | lcd.drawSprite(_seeker_xpos,_seeker_ypos,7,9,(int *)seeker); |
ikenna1 | 15:009ccc07bb57 | 32 | } |
ikenna1 | 15:009ccc07bb57 | 33 | void Enemy::update_seeker(int ship_xpos, int ship_ypos) |
ikenna1 | 15:009ccc07bb57 | 34 | { |
ikenna1 | 15:009ccc07bb57 | 35 | int rangex = _seeker_xpos - ship_xpos; |
ikenna1 | 15:009ccc07bb57 | 36 | int rangey = _seeker_ypos - ship_ypos; |
ikenna1 | 15:009ccc07bb57 | 37 | |
ikenna1 | 15:009ccc07bb57 | 38 | // make seeker move towards ship |
ikenna1 | 15:009ccc07bb57 | 39 | if(rangey < 0) { |
ikenna1 | 15:009ccc07bb57 | 40 | if(rangex < 0) { |
ikenna1 | 15:009ccc07bb57 | 41 | _seeker_xpos = _seeker_xpos + 2; |
ikenna1 | 15:009ccc07bb57 | 42 | } else if(rangex == 0) { |
ikenna1 | 15:009ccc07bb57 | 43 | _seeker_xpos = _seeker_xpos; |
ikenna1 | 15:009ccc07bb57 | 44 | } else { |
ikenna1 | 15:009ccc07bb57 | 45 | _seeker_xpos = _seeker_xpos - 2; |
ikenna1 | 15:009ccc07bb57 | 46 | } |
ikenna1 | 15:009ccc07bb57 | 47 | } |
ikenna1 | 15:009ccc07bb57 | 48 | |
ikenna1 | 15:009ccc07bb57 | 49 | // reset seeker to top |
ikenna1 | 15:009ccc07bb57 | 50 | if(_seeker_ypos > 54) { |
ikenna1 | 15:009ccc07bb57 | 51 | _seeker_ypos = 0; |
ikenna1 | 15:009ccc07bb57 | 52 | } |
ikenna1 | 15:009ccc07bb57 | 53 | _seeker_ypos = _seeker_ypos + 2; |
ikenna1 | 15:009ccc07bb57 | 54 | printf("seeker_xpos , seeker_ypos = %d, %d\n", _seeker_xpos, _seeker_ypos); |
ikenna1 | 15:009ccc07bb57 | 55 | } |
ikenna1 | 18:2cc6898de6b2 | 56 | void Enemy::reset_seeker() |
ikenna1 | 18:2cc6898de6b2 | 57 | { |
ikenna1 | 18:2cc6898de6b2 | 58 | _seeker_xpos = 0; |
ikenna1 | 18:2cc6898de6b2 | 59 | _seeker_ypos = 0; |
ikenna1 | 18:2cc6898de6b2 | 60 | } |
ikenna1 | 15:009ccc07bb57 | 61 | Vector2D Enemy::get_seekerpos() |
ikenna1 | 15:009ccc07bb57 | 62 | { |
ikenna1 | 15:009ccc07bb57 | 63 | Vector2D seeker_pos = {_seeker_xpos,_seeker_ypos}; |
ikenna1 | 15:009ccc07bb57 | 64 | return seeker_pos; |
ikenna1 | 15:009ccc07bb57 | 65 | } |