public PlatformerCharacterState() { this.motorState = new CharacterMotorState("platformer-character"); this.gravityState = new GravityForceState(motorState); this.jumpState = new CurvedMotionForceState(jumpForce); jumpForce.direction = MotionDirection.Up; motorState.forces.AddFirst(jumpForce); motorState.forces.AddFirst(walkForce); motorState.forces.AddFirst(gravityState.force); }
public static void Update(GravityForceState state) { var isBlocked = state.motorState.blocked[MotionDirection.Down]; var wasBlocked = state.motorState.wasBlocked[MotionDirection.Down]; if (!isBlocked && wasBlocked) { state.curvedForceState.delta = 0; state.curvedForceState.requestedState = MotionPlaybackState.Playing; } CurvedMotionForce.Update(instance.config, state.curvedForceState); }