Craig Evans
/
ELEC2645_Pong2021
Pong game for ELEC1620 board.
Diff: lib/Paddle.cpp
- Revision:
- 1:d63a63f0d397
- Child:
- 2:482d74ef09c8
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lib/Paddle.cpp Fri Mar 05 16:58:05 2021 +0000 @@ -0,0 +1,40 @@ +#include "Paddle.h" + +// nothing doing in the constructor and destructor +Paddle::Paddle() { } + +void Paddle::init(int x,int height,int width) { + printf("Paddle: Init\n"); + _x = x; // x value on screen is fixed + _y = HEIGHT/2 - height/2; // y depends on height of screen and height of paddle + _height = height; + _width = width; + _speed = 1; // default speed + _score = 0; // start score from zero +} + +void Paddle::draw(N5110 &lcd) { + printf("Paddle: Draw\n"); + lcd.drawRect(_x,_y,_width,_height,FILL_BLACK); +} + +void Paddle::update(UserInput input) { + printf("Paddle: Update\n"); + _speed = int(input.mag*_height); // speed of movement changes depending on + // how far the joystick is pushed (0 to 1) and the height of the paddle + + // update y value depending on direction of movement + // North is decrement as origin is at the top-left so decreasing moves up + if (input.d == N) { _y-=_speed; } + else if (input.d == S) { _y+=_speed; } + + // check the y origin to ensure that the paddle doesn't go off screen + if (_y < 1) { _y = 1; } + if (_y > HEIGHT - _height - 1) { _y = HEIGHT - _height - 1; } +} + +void Paddle::add_score() { _score++; } + +int Paddle::get_score() { return _score; } + +Position2D Paddle::get_pos() { return {_x,_y}; } \ No newline at end of file