Mova o jogador na posição do mouse em pygame

Tenho um player fixo no centro da tela e, por enquanto, estou movendo o fundo e os elementos na direção oposta para dar a ilusão de avançar com as teclas direcionais.

Mas agora, quero detectar a posição do mouse e deslocar o jogador na direção do mouse (como no jogo agar.io por exemplo) e que a aceleração depende da distância com o objeto (quanto mais o mouse estiver) é, quanto mais rápido o jogador avança e se o mouse estiver no jogador, ele não avançará mais)

eu programa funciona assim:

keys = pygame.key.get_pressed()
if keys[pygame.K_UP]:
    if y_max > -1000:
        y_max -= int(player_1.speed * dt)
        bg_y += int(player_1.speed * dt)
        if bg_y > 0:
            bg_y = -400
if keys[pygame.K_DOWN]:
    if y_max < 1000:
        y_max += int(player_1.speed * dt)
        bg_y -= int(player_1.speed * dt)
        if bg_y < -HEIGHT:
            bg_y = -400
if keys[pygame.K_LEFT]:
    if x_max > -1000:
        x_max -= int(player_1.speed * dt)
        bg_x += int(player_1.speed * dt)
        if bg_x > 0:
            bg_x = -400
if keys[pygame.K_RIGHT]:
    if x_max < 1000:
        x_max += int(player_1.speed * dt)
        bg_x -= int(player_1.speed * dt)
        if bg_x < -WIDTH:
            bg_x = -400

Achei isso para ajudar, mas não entendo como funciona:

dX, dY = pygame.mouse.get_pos()
rotation = math.atan2(dY - (float(HEIGHT) / 2), dX - (float(WIDTH) / 2)) * 180 / math.pi

e talvez eu precise usar seno e cosseno, mas não sei como?

Obrigado pela ajuda

questionAnswers(1)

yourAnswerToTheQuestion