(Solved) Platforming with Physics Joints?

I’m using the Physics 2.0 engine with the Platforming built-in behavior to create platformer mechanics. That worked nicely for what I was doing until I started incorporating physics-based platforms.

I have a wheel platform (3 platforms on a wheel that rotates) and when a character stands on it, if they don’t move, they eventually fall through the floor. They also can’t reliably jump as they are “in the air” for brief moments in time (I think I can fix that). It’s the falling through the floor problem that has become the major issue.

Has anyone else had this issue and do you know how to fix it?

Thank you

I’ve never tried that combination, but you can try adding an event that checks if the player is NOT colliding with the platform, and the player is not moving / no keys are pressed, disable player PlatformerObject behaviour. This should cause it to float in the air.
Next, check if no keys are being pressed again, and check if the player is colliding with the platform object. If true, enable the PlatformerObject behaviour - this makes the player fall/move again.
Then, add another event that checks if player pressing any movement keys (left/right/jump), and check if platformerObject is disabled, then enable it again.
I assume you’d get some sort of jerky switch between landing and being on air, but it’s a start.

For the jumping part - I assume you understand that already, but basically, create coyote time! A timer that allows the player to jump right when the player goes into the air.

2 Likes

Thanks for that! I will give it a try.

I’m trying to use this combo since it’s already baked into the engine and I don’t have to program the entire platforming engine to use Physics 2.0, from scratch, but it’s sort of looking like I may have to if I can’t get this looking natural.

And yeah, the Coyote Timer was what I planned on doing for the jump problem. It’s something I was going to do for other UX reasons but gives me the benefit of fixing that, too.

1 Like

Although it’s solved, another user found a simple way to make it happen.

1 Like