idanarye / bevy-tnua

A floating character controller for Bevy
https://crates.io/crates/bevy-tnua
Apache License 2.0
238 stars 16 forks source link

Ledge climbing / vaulting #7

Open idanarye opened 1 year ago

idanarye commented 1 year ago

We need a mechanism for scaling obstacles. Ledge grabbing is when you grab the ledge in the air, and vaulting is when you start from ground level, but I think the mechanism should be similar.

I'd like a design where the control system is fully responsible for both grabbing the ledge and pulling the character over it. From Tnua's API side both these actions will all require explicit invocation, but the control system is free to make it automatic for the player.

All of this state (grabbing, climbing, whether or not it's from the ground), of course, should be exposed in TnuaPlatformerAnimatingOutput.

In 3D, we should also support moving sideways.

And I wonder if wall-sliding and walljumping can use the same mechanism, but I have a feeling this will require #6.