#include <SFML/Graphics.hpp>
#include <iostream>
using namespace sf;
using std::cout;
int main() {
RenderWindow window(VideoMode({ 800, 600 }), "Pong", Style::Titlebar | Style::Close);
window.setVerticalSyncEnabled(true);
RectangleShape player_paddle({ 14, 100 });
RectangleShape opponent_paddle({ 14, 100 });
player_paddle.setFillColor(Color::Yellow);
opponent_paddle.setFillColor(Color::White);
player_paddle.setPosition({ 786, 250 });
opponent_paddle.setPosition({ 0, 250 });
CircleShape ball({ 5 });
ball.setPosition({ 395, 295 });
bool paddle_moving_up = false;
bool paddle_moving_down = false;
while (window.isOpen()) {
while (const std::optional<Event> event = window.pollEvent()) {
if (Keyboard::isKeyPressed(Keyboard::Key::Up)) {
paddle_moving_up = true;
}
if (Keyboard::isKeyPressed(Keyboard::Key::Down)) {
paddle_moving_down = true;
}
if (event->is<Event::Closed>())
window.close();
}
if (paddle_moving_up) {
if (player_paddle.getPosition().y - 10 >= 0) {
player_paddle.move({ 0, -10 });
}
}
if (paddle_moving_down) {
if ((player_paddle.getPosition().y + 100) + 10 <= 600) {
player_paddle.move({ 0, 10 });
}
}
paddle_moving_up = false; paddle_moving_down = false;
window.clear();
window.draw(player_paddle); window.draw(opponent_paddle);
window.draw(ball);
window.display();
}
}