Reham Faqehi / Mbed 2 deprecated fy15raf

Dependencies:   mbed

Fork of fy15raf by ELEC2645 (2017/18)

Rocket/Rocket.cpp

Committer:
RehamFaqehi
Date:
2018-05-06
Revision:
14:cf4a32245152
Parent:
12:4d7f1349d796

File content as of revision 14:cf4a32245152:

#include "Rocket.h"

Rocket::Rocket()
{

}

Rocket::~Rocket()
{

}

void Rocket::init()
{
    //initialise the rocket position, speed and collisions 
    _x = 15 ;
    _y = HEIGHT/2 ;
    _speed = 1;
    _collision=0;
}

void Rocket::draw(N5110 &lcd)
{
    int sprite[7][10] =   {

        { 0,1,1,1,1,0,0,0,0,0, },
        { 0,0,1,0,0,1,1,0,0,0, },
        { 0,0,0,1,0,0,0,1,1,0, },
        { 0,0,0,1,1,1,1,1,1,1, },
        { 0,0,0,1,0,0,0,1,1,0, },
        { 0,0,1,0,0,1,1,0,0,0, },
        { 0,1,1,1,1,0,0,0,0,0, },
    };
    lcd.drawSprite(_x,_y,7,10,(int *)sprite);
}

void Rocket::update(Direction d,float mag)
{
    _speed = int(mag*10.0f); //shows how far from the center does the rocket move based on the joystick

    // update y and x values based on direction of movement
    if (d == N) {
        _y-=_speed;
    } else if (d == S) {
        _y+=_speed;
    } else if (d == W) {
        _x-=_speed;
    } else if (d == E) {
        _x+=_speed;
    }

    // check the rocket coordinates so it doesn't go off screen
    if (_y < 1) {
        _y = 1;
    }
    if (_y > HEIGHT - 7) {
        _y = HEIGHT - 7;
    }
    if (_x < 1) {
        _x = 1;
    }
    if (_x > WIDTH - 9) {
        _x = WIDTH - 9;
    }
}

Vector2D Rocket::get_pos()
{
    Vector2D p = {_x,_y};
    return p;
}

void Rocket::add_collisions()
{
    _collision++;
}

int Rocket::get_collisions()
{
    return _collision;
}

void Rocket::drawFullHearts(N5110 &lcd)
{
    int sprite[5][17] =   {

        { 1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1, },
        { 1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1, },
        { 1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1, },
        { 0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0, },
        { 0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0, },
    };
    lcd.drawSprite(0,0,5,17,(int *)sprite);
}

void Rocket::drawTwoHearts(N5110 &lcd)
{
    int sprite[5][17] =   {

        { 1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1, },
        { 1,1,1,1,1,0,1,1,1,1,1,0,1,0,1,0,1, },
        { 1,1,1,1,1,0,1,1,1,1,1,0,1,0,0,0,1, },
        { 0,1,1,1,0,0,0,1,1,1,0,0,0,1,0,1,0, },
        { 0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0, },
    };
    lcd.drawSprite(0,0,5,17,(int *)sprite);
}

void Rocket::drawOneHeart(N5110 &lcd)
{
    int sprite[5][17] =   {

        { 1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1, },
        { 1,1,1,1,1,0,1,0,1,0,1,0,1,0,1,0,1, },
        { 1,1,1,1,1,0,1,0,0,0,1,0,1,0,0,0,1, },
        { 0,1,1,1,0,0,0,1,0,1,0,0,0,1,0,1,0, },
        { 0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0, },
    };
    lcd.drawSprite(1,1,5,17,(int *)sprite);
}