James Heavey / Mbed 2 deprecated EL17JH

Dependencies:   mbed

Paddle/Paddle.cpp

Committer:
jamesheavey
Date:
2019-04-21
Revision:
9:f6f0f39538c7
Parent:
1:e18615d46071
Child:
15:b867a6620f96

File content as of revision 9:f6f0f39538c7:

#include "Paddle.h"

// nothing doing in the constructor and destructor
Paddle::Paddle()
{

}

Paddle::~Paddle()
{

}

void Paddle::init(int y,int height,int width)
{
    _x = WIDTH/2 - width/2;  // x value on screen is fixed
    _y = y;  // y depends on height of screen and height of paddle
    _height = height;
    _width = width;
    _speed = 1;  // default speed
    _score = 0;  // start score from zero
    _lives = 6;

}

void Paddle::draw(N5110 &lcd)
{
    // draw paddle in screen buffer. 
    lcd.drawRect(_x,_y,_width,_height,FILL_BLACK);
}

void Paddle::update(Direction d,float mag)
{
    _speed = int(mag*10.0f);  // scale is arbitrary, could be changed in future

    // update y value depending on direction of movement
    // North is decrement as origin is at the top-left so decreasing moves up
    if (d == W) {
        _x-=_speed;
    } else if (d == E) {
        _x+=_speed;
    }

    // check the y origin to ensure that the paddle doesn't go off screen
    if (_x < 1) {
        _x = 1;
    }
    if (_x > WIDTH - _width - 1) {
        _x = WIDTH - _width - 1;
    }
}

void Paddle::add_score()
{
    _score++;
}
int Paddle::get_score()
{
    return _score;
}

int Paddle::get_lives()
{
    return _lives;
}

void Paddle::lose_life()
{
    _lives--;
}

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