Wow, great example!!
This takes me back to my childhood, I really liked that game.
This example makes me want to start on that platformer I always wanted to make.. Thanks!
@DaveC Hey, this is a bit late, but I was trying to use your technique to stop the vertical platform jitter, and noticed if I duplicate the path elevator, the player falls through it. It seems as though it should work for multiple path elevators, am I missing something?
Using Dave's example, duplicating the path platform active works as it should. Did you use a qualifier like in Dave's example? If it works fine with the original you must have missed a step.
Another question is how to properly stop the player from getting stuck if entering a wall whilst on the platform? Sonic gracefully pushes him back and he slides on the surface of the platform, as the Icarus example does if you place an obstacle in the path, but it's hard to port the code out without this part breaking. @DaveC would it be possible for you to do a stripped-down version of this with just PMO and just the code for multi-way platform?
I've modified yours to try and get a better understanding of it, and I've added movesafely2 to take care of the PushOut, but it breaks when the path moves up and you're against the wall. How can I keep the player on the platform as it ascends, but still pushes-out against the obstacle?
Here's a working version!Kid Icarus Fusion remixx4.mfa
Sorry, it breaks if the player walks whilst against the wall as it moves upwards. I'm not sure how to fix that as PMO's velocity is hidden?
Here's a fixed version that works with multiple platforms, and has been reduced to one pushout routine due to condensed direction test (this can be refined much further by changing flags to multiplying a move value by -1): Attachment 25737
It gets ugly if you get trapped under the wall on the y axis moving upwards, but it's still elegant enough to keep you on the platform. A head test collider could allow for a "crush sonic" function to kill you, but this isn't implemented in this example.