diff --git a/game.cpp b/game.cpp index 0368924..deab20a 100644 --- a/game.cpp +++ b/game.cpp @@ -4,7 +4,7 @@ Game::Game() : x(0), y(0), max_x(800), max_y(600), direction(0), window(sf::VideoMode(max_x, max_y), "SFML Window"), - racecar(200.0f, 10.0f, 1.0f) { // Adjust maxSpeed, acceleration, and steerSpeed values as needed + racecar(200.0f, 20.0f, 1.0f) { // Adjust maxSpeed, acceleration, and steerSpeed values as needed if (!font.loadFromFile("cascaydia.otf")) { std::cerr << "Failed to load font" << std::endl; exit(1); @@ -30,7 +30,11 @@ void Game::run() { } if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up)) { - racecar.accelerate(dt); + if (racecar.getSpeed() < 0) { + racecar.brake(dt); // Apply brakes + } else { + racecar.accelerate(dt); // Reverse the car + } } else if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down)) { if (racecar.getSpeed() > 0) { racecar.brake(dt); // Apply brakes diff --git a/racecar.cpp b/racecar.cpp index 797c7ff..b77b3ce 100644 --- a/racecar.cpp +++ b/racecar.cpp @@ -26,11 +26,9 @@ void Racecar::accelerate(float dt) { void Racecar::decelerate(float dt) { if (speed < 0) { - speed += acceleration * dt; + speed += 3 * acceleration * dt; } else if (speed > 0) { - speed -= acceleration * dt; - } else if (speed > -maxSpeed / 2) { - speed -= 1.5 * acceleration * dt; + speed -= 3 * acceleration * dt; } } @@ -40,7 +38,10 @@ void Racecar::steer(float dt, float direction) { void Racecar::brake(float dt) { if (speed > 0) { - speed -= 3 * acceleration * dt; + speed -= 9 * acceleration * dt; + } + if (speed < 0) { + speed += 9 * acceleration * dt; } } diff --git a/terminal_racer b/terminal_racer index 071ba9a..d156ace 100755 Binary files a/terminal_racer and b/terminal_racer differ