26 lines
828 B
C#
26 lines
828 B
C#
using Godot;
|
|
|
|
namespace Mr.BrickAdventures.scripts.components;
|
|
|
|
[GlobalClass]
|
|
public partial class GroundMovementAbility : MovementAbility
|
|
{
|
|
[Export] public float MaxSpeed { get; set; } = 300.0f;
|
|
[Export] public float Acceleration { get; set; } = 2000.0f;
|
|
[Export] public float Friction { get; set; } = 1500.0f;
|
|
|
|
public override Vector2 ProcessMovement(Vector2 velocity, double delta)
|
|
{
|
|
if (_input == null) return Vector2.Zero;
|
|
|
|
var direction = _input.MoveDirection.X;
|
|
var targetSpeed = direction * MaxSpeed;
|
|
|
|
if (direction != 0)
|
|
velocity.X = Mathf.MoveToward(velocity.X, targetSpeed, Acceleration * (float)delta);
|
|
else
|
|
velocity.X = Mathf.MoveToward(velocity.X, 0, Friction * (float)delta);
|
|
|
|
return velocity;
|
|
}
|
|
} |