I am making a pong clone for a first project, but so far the paddle's movement choppy, not laggy, but just skips from one place to another. Try this out and please tell me how to fix this.
#include <SFML/Graphics.hpp>
#include <SFML/Audio.hpp>
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
float ballSpeed = 400.0f;
float paddleSpeed = 10000.0f;
float ballVelX = 10;
float ballVelY = 10;
sf::Clock cloc;
sf::Time tim;
bool isPlaying = true;
sf::Vector2i screenSize(800,600);
int main()
{
sf::CircleShape pongBall;
//sf::CircleShape::
pongBall.setFillColor(sf::Color::Red);
pongBall.setRadius(25.0f);
pongBall.setPosition(400, 300);
sf::RectangleShape paddle1;
// sf::RectangleShape::
paddle1.setFillColor(sf::Color::Yellow);
paddle1.setSize(sf::Vector2f(50, 250));
paddle1.setPosition(0, 175);
sf::RectangleShape paddle2;
// sf::RectangleShape::
paddle2.setFillColor(sf::Color::Yellow);
paddle2.setSize(sf::Vector2f(50, 250));
paddle2.setPosition(750, 175);
pongBall.setPosition(400, 300);
paddle1.setPosition(1, 250);
paddle2.setPosition(784, 250);
float t = rand() % 1;
float w = rand() % 1;
sf::RenderWindow window(sf::VideoMode(screenSize.x, screenSize.y), "Pro");
float deltaTime = cloc.restart().asSeconds();
cloc.restart();
while(window.isOpen()){
sf::Event event;
while(window.pollEvent(event)){
if(event.type == sf::Event::Closed){
window.close();
}
if(sf::Keyboard::isKeyPressed(sf::Keyboard::W)){
paddle1.move(0, paddleSpeed * cloc.getElapsedTime().asSeconds());
if(paddle1.getPosition().y < 0){
paddle1.setPosition(15, 0);
}
if(paddle1.getPosition().y > window.getSize().y){
paddle1.setPosition(10, 10);
}
}
if(sf::Keyboard::isKeyPressed(sf::Keyboard::S)){
paddle1.move(0, paddleSpeed * cloc.getElapsedTime().asSeconds());
if(paddle1.getPosition().y > 491)
paddle1.setPosition(1, 490);
cout << paddle1.getPosition().y << endl;
if(paddle1.getPosition().y > window.getSize().y){
paddle1.setPosition(10, 10);
}
}
if(sf::Keyboard::isKeyPressed(sf::Keyboard::Space)){
}
}
window.clear();
window.draw(pongBall);
window.draw(paddle1);
window.draw(paddle2);
window.display();
}
}