Player.x, player.y provides a regularly updated set of coords to the enemy to track the player down. Those coords are where the player is at every point in time. So rather than pointing the enemy at where the player was a point in time that has past, it points them at where the player is presently.
Thinking out loud here - but maybe I need to continuously track player x and y coords all the time. And have the enemy move to that most recent set of stored coords (in an instance variable?) which are made available to it only when the proximity threshold has been reached.
But how....? How to make the enemy move to a specific point (X,Y) once and only once the player has come within so many pixels....
I can't quite crack it, but I reckon it'll be so obivious a solution once it's sorted