I was working on a small Mario style 2D platformer. For the project capstone, I was to modify the game significantly. Being a programmer and not a good artist, I took a sprite sheet online and worked in making a couple of things like Player Movements. The course already taught Jump and Double Jump. I added two more movements: Crouch and Climbing.
Here is a modified animation showcasing the flow and the FSM.
Crouching (C Keyboard or X on Xbox):
Climbing (Up/W Keyboard or LS-Up on Xbox):
Here is the FSM …
The below link contains a dist of the concept game. It supports both WebGL and Windows. (For WebGL Chrome will not work due to security reason [blocked access to file:// url via xhr]. You can still try with other browsers, or setup an http-server pretty easily on almost any programming language.)