Sobre el código para física en 2D había por ahí varios intentos de motor de colisiones, pero no los tengo ubicados ahora mismo y no los ví suficientemente maduros... También se habló hace tiempo de una librería de física hecha en C que podría pasarse a DLL, eso sólo para el tema de colisiones.
El salto es problema fácil de resolver, al final y al cabo se trata de implementar un incremento exponencial. Si viste como iba el salto en 3D en 2D es la mismísima idea o bien usar el código de gravedad que circula por ahí, que vale para todo

El balanceo con una cuerda ya es más difícil, está la idea de Momia de usar puntos de control en el extremo "adhesivo" y sólo usar angle para simular el balanceo, me pareció una de las mejores soluciones para no entrar en trigonometría y complicar el código. Luego requeriría usar alguna función de puntos de control para colocar el personaje en el extremo opuesto de la cuerda, se le puede echar un vistazo que no tendrá demasiada complicación.
Eso sí, esas cosas a requisitos cuanto antes que eso de andar queriendo meter cosas nuevas cada dos por tres te lleva a un no acabar.