So I am making a 2d platformer, heavily influenced by HH. I use more or less the same collision detection and simulation system as HH (I'm on episode 130). It works fine except that the character gets stuck on the geometry sometimes because of rounding errors.
The green man should move smoothly up the ramp and onto the platform. It works most of the time, but sometimes the square's corner (in the red circle) gets a rounding error moving it up (as shown on drawing 2). This makes the man hit the corner and stop. He is the center of the sim region, so the next frame when the sim region has moved, there is no rounding error and he can move again. But by this time he has lost his velocity. Hope this makes sense.
How do I avoid this problem? The corner's coordinate are something like (10.8217773, 10.8217926). It is the 0.0000153 difference that gives the problem.