> lerp(self.x,target.x,yourspeed*dt)
> lerp(self.y,target.y,yourspeed*dt)
>
> Target, as well as yourspeed can be a variable.
>
This is a misuse of the lerp function, and should not be used (the ease in actually when you are using this is caused by the fact the distance between the self and the target is reduced, but the target will not be reached except if there are errors accumulating)
If you want to go from a to b, either move with clamp(self.x+speedx, self.x, target.x) (depending on where is the target, you might want to adapt the formula) or using lerp(initialx, target.x, percentage) with percentage increasing from 0 to 1
Its perfectly reasonable for something like this.
If you need it to be to the pixel add a wait x seconds, put a set xy to target xy, and change the Boolean that gave it movement to false.
Then again "to the pixel" isn't a very good idea either.