You may find it easier to use two variables to store the amount that each object ( in this case the player ) has moved this frame. Every time you find yourself modifying the position, just add to or subtract from these variables instead. Then at the end of your update function, right before you moveentity ( you only have to move entity once now ) multiply the change variables by your unit multiplier and move the player.