ELEC2645 (2019/20) / Mbed 2 deprecated ELEC2645_Project_el18jkeo

Dependencies:   mbed

Alien/Alien.cpp

Committer:
josh_ohara
Date:
2020-04-01
Revision:
13:b85f14d35be1
Parent:
12:be491ab6e742
Child:
14:e88bcf5c0887

File content as of revision 13:b85f14d35be1:

#include "Alien.h"


void Alien::init(int x, int y, int size) {
    Alive = true;
    StartX = x;
    StartY = y;
    X = x;
    Y = y;
    Size = size;
    Speed = 1;
}

void Alien::render(N5110 &lcd) {
    if(Alive == true){
        lcd.drawRect(X, Y, Size, Size, FILL_BLACK);
    } 
}

Vector2D Alien::get_position() {
    Vector2D p = {X,Y};
    return p;
}

void Alien::update(N5110 &lcd, int step_x, int remainder_x) {
    X+=Speed;
    int _step_x = step_x;
    int _remainder_x = remainder_x;
    if (X < 1 + _remainder_x*_step_x) {
        X = 1 + _remainder_x*_step_x;
        Speed = -Speed;
        Y = Y + 2;
    }
    if (X > WIDTH - Size - 1 - (4-_remainder_x)*_step_x) {
        X = WIDTH - Size - 1 - (4-_remainder_x)*_step_x;
        Speed = -Speed;
        Y = Y + 2;
    }
    collision(lcd);
}
    
void Alien::collision(N5110 &lcd) {
    for(int i = X; i < X + Size; i++) {
        if(lcd.getPixel(i,Y + Size + 1)) {
            Alive = false;
        }
    }
}