A priori ta map est à base de Tile, tu peut donc associer une fonction à chaque catégorie de tile (Sol, Pente...)
Pour le sol, il suffit de bloquer l'ordonnée (Y).
Pour la pente, applique une fonction de type y = x / 2 ( y = -x / 2), ( ou / z, selon l'inclinaison de la pente).
C'est assez simple à mettre en place, et c'est aussi précis que le pixel perfect, avec l'avantage d'utiliser une fonction de maths (tout est pré-calculable, quelque soit le mouvement)
Tu devras par contre construire au préalable un structure de données permettant d'indexer tout cela proprement 
Quand ce sera fait, ce sera applicable à n'importe quoi ! (aussi bien des looping de Sonic que des plat à la Mario)