-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPaddle.cpp
More file actions
65 lines (56 loc) · 1011 Bytes
/
Paddle.cpp
File metadata and controls
65 lines (56 loc) · 1011 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include "Paddle.h"
#include "Constants.h"
#include <iostream>
Paddle::Paddle(sf::Vector2f position) :
mPaddleShape(),
mSize(PADDLE_SIZE),
mPosition(position),
mSpeed(PADDLE_SPEED),
mMoveUp(false),
mMoveDown(false)
{
mPaddleShape.setSize(mSize);
mPaddleShape.setFillColor(PADDLE_COLOR);
mPaddleShape.setPosition(mPosition);
}
void Paddle::update()
{
if (mMoveUp)
{
mPosition.y -= mSpeed;
}
if (mMoveDown)
{
mPosition.y += mSpeed;
}
LimitMovement();
mPaddleShape.setPosition(mPosition);
}
void Paddle::update(float ballY)
{
if (mPosition.y + mSize.y / 2 <= ballY)
{
mPosition.y += mSpeed;
}
else if (mPosition.y + mSize.y / 2 > ballY)
{
mPosition.y -= mSpeed;
}
LimitMovement();
mPaddleShape.setPosition(mPosition);
}
void Paddle::render(sf::RenderWindow& window)
{
window.draw(mPaddleShape);
}
void Paddle::LimitMovement()
{
if (mPosition.y <= 0)
{
mPosition.y = 0;
}
if (mPosition.y + mSize.y >= SCREEN_HEIGHT)
{
mPosition.y = SCREEN_HEIGHT - mSize.y;
}
}