Sticky situation

So I continued tweaking my physics re: player collides with world, loosely based on the Sonic Physics Guide. Continuing to experiment to find good values for gravity, drag, etc. Characters will fall to and snap to the floor, and the floor sets your 'vy' to 0. And, a first for me, we only let you jump if you are currently touching a tile. No double jumping. The funniest part is the same logic that sticks you to the floor also sticks you to the ceiling!

The coolest thing about how Sonic interacts with the ground is that it isn't the obvious box collision with the floor. Instead, several "sensor" points including a couple at either side of his feet are checked for collision, then the usual snapping is done. The Sonic games take advantage of this system to play the "teetering" animation when you are near an edge - one sensor is on the ground, the other is in the air.