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