В такой ситуации легче работать с векторами, чем с углами.
Какая-то простая математика вычисляет вектор между врагом и игроком:
# Compute the x and y displacement from the enemy to the player
dx = player_x - enemy_x
dy = player_y - enemy_y
# normalize the displacement to get the direction vector
distance = sqrt(dx * dx + dy * dy)
projectile.dir_x = dx / distance
`` `
Снаряду просто нужно следовать за этим вектором во время цикла обновления:
projectile.x += projectile.dir_x * projectile.speed * time_elapsed
projectile.y += projectile.dir_y * projectile.speed * time_elapsed