Pygame racing game

Here is the code:

import pygame
import math
import road

class Game:
    def __init__(self):
        #window params
        self.window_size = (1920, 1080)
        self.FPS = 60
        self.sc = pygame.display.set_mode(self.window_size, pygame.FULLSCREEN)
        self.clock = pygame.time.Clock()
        self.done = False

        #colors
        self.BLACK = (0, 0, 0)
        self.WHITE = (255, 255, 255)
        self.GREEN = (0, 255, 0)

        #car params
        self.size = (10, 50)
        self.angle = 5
        self.speed = 10
        self.x = self.window_size[0] // 2 - self.size[0]
        self.y = self.window_size[1] // 2 - self.size[1]
        self.d2r = math.pi / 180

        #car
        self.rot = 0
        self.rot_speed = 5
        self.image_orig = pygame.Surface((50, 10))
        self.image_orig.set_colorkey(self.BLACK)
        self.image_orig.fill(self.GREEN)
        self.image = self.image_orig.copy()
        self.image.set_colorkey(self.BLACK)
        self.rect = self.image.get_rect()
        self.rect.center = (self.window_size[0] // 2, self.window_size[1] // 2)

    def draw_road(self):
        pygame.draw.circle(self.sc, (255, 255, 255), (1920 // 2, 1080 // 2), 500, 100) 

    def draw_car(self):
        pygame.draw.rect(
            self.sc,
            (255, 255, 255),
            (self.x, self.y, self.size[0], self.size[1])
        )

    def main_loop(self):
        while not self.done:
            self.clock.tick(self.FPS)
            self.sc.fill(self.BLACK)

            for i in pygame.event.get():
                if i.type == pygame.QUIT:
                    self.done = True

            # self.draw_car()
            self.draw_road()

            old_center = self.rect.center
            # self.rot = (self.rot + self.rot_speed) % 360
            new_image = pygame.transform.rotate(self.image_orig, self.rot)
            self.rect = new_image.get_rect()
            self.rect.center = old_center

            self.sc.blit(new_image, self.rect)
            pygame.display.update()
            


            keys = pygame.key.get_pressed()
            if keys[pygame.K_LEFT]:
                self.rot += self.rot_speed
                self.rot = self.rot % 360

            if keys[pygame.K_RIGHT]:
                self.rot -= self.rot_speed
                self.rot = self.rot % 360

            if keys[pygame.K_UP]:
                self.x += self.speed * math.cos(self.rot * self.d2r)
                self.y += self.speed * -math.sin(self.rot * self.d2r)
                self.rect.center = (self.x, self.y)

            if keys[pygame.K_DOWN]:
                self.x -= self.speed * math.cos(self.rot * self.d2r)
                self.y -= self.speed * -math.sin(self.rot * self.d2r) 
                self.rect.center = (self.x, self.y)   
                    


game = Game()
game.main_loop()

It should be something like a racing game. The circle is a race track. Now the car goes beyond this race track. How do I add the boundaries of this circle?

enter a description of the image here

Author: Ylanaish, 2020-11-06