в дополнении к

я есть неподвижный игрок в центре экрана, и сейчас я перемещаю фон и элементы в противоположном направлении, чтобы создать иллюзию движения вперед с помощью клавиш со стрелками.

Но теперь я хочу определить положение мыши и переместить игрока в направлении мыши (как, например, в игре agar.io), и что ускорение зависит от расстояния до объекта (чем дальше мышь чем быстрее игрок продвигается вперед и если мышь находится на игроке, он больше не продвигается)

Моя программа работает так:

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

Я нашел это, чтобы помочь, но я не понимаю, как это работает:

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

и, возможно, я должен использовать синус и косинус, но я не знаю, как?

Спасибо за вашу помощь !

Ответы на вопрос(1)

Ваш ответ на вопрос