There are other posts out there on this topic, but I thought I would share my learnings from my exploration of making characters climb ladders using both sprites and tilemaps, and some different ladders/platforms arrangements, with arcade physics. Quite frankly, I found this topic deceptively complex.
Here is my blog on this topics using just sprites, and this is one of the examples.
And here is blog of me looking at tilemap ladder climbing where ladders stick out above platforms.
And finally, blog of me looking into tilemap ladder climbing where ladders do not stick out above platforms.
Really great reads, thanks for documenting all your findings!
I really appreciate your blog post with all the details.
I once made a ladder plugin for the ImpactJS game engine (which had its own level editor called Weltmeister). You could import my ladder Entity and size it as needed.
In the game, the player could collide with a ladder causing his canClimb to be true.
Pressing up or down would then make isClimbing true. This was important because sometimes you want to walk past (or jump through) a ladder without it having any effect.
But you also want to be able to jump off a ladder.
As you have discovered there are so many things to think of to make it fun and not annoying like early platform games could sometimes be.
Your approach with Tiled is really interesting and I will read it thoroughly if I get around to making another game with ladders.
Thank you for your feedback!
Wow! Building a generic plug-in is way beyond my capabilities, but hopefully other people who enjoy tinkering around with Phaser will find reading my struggles and learnings interesting!