I know the usual method of infinite runner games the world moves and the character does not, but for this game, I need the character to actually move, since they are being chased - and can be slowed down and caught.
Actually… the magic of vectors can be used to solve this problem too… and will probably benefit you more in the long run to use the traditional method especially if you are making an infinite level.
Lets say you have a player and a monster who is chasing the player. Basically your player has a vector position which would always be p = <0,0,0> your “monster” chasing you would have it’s position OFFSET from you m = <0, -100, 0>. Both you and the monster have a “forward” velocity, but it’s really just virtual. Both the player and the monster have a default forward velocity of vp = vm = <0, 5, 0>. Each tick you recalculate the offset between you and the monster by subtracting vm - vp and adding the difference to the offset of the monster. If the player slows down the monster gains on them. If the monster slows down the player gains on him.