Files
Voile/TestGame/TestPlayer.cs
2024-02-06 19:25:36 +01:00

44 lines
1022 B
C#

using Voile;
using Voile.Extensions;
using Voile.SceneGraph;
using Voile.Utils;
public class TestPlayer : RectangleShape2d
{
public float SprintSpeed { get; set; } = 400f;
protected override void OnStart()
{
base.OnStart();
Color = Color.Cyan;
_camera = new Camera2d()
{
Current = true,
};
if (Layer is not null)
{
Layer.AddEntity(_camera);
}
}
protected override void OnUpdate(double dt)
{
base.OnUpdate(dt);
var sprinting = Input.IsActionDown("sprint");
_speed = sprinting ? SprintSpeed : 200f;
var velocity = Input.GetInputDirection("left", "right", "up", "down") * _speed;
Position += velocity * (float)dt;
if (_camera is not null)
{
_camera.Position = _camera.Position.Lerp(Position, dt * 5f);
}
}
private Logger _logger = new(nameof(TestPlayer));
private float _speed = 200f;
private Camera2d? _camera;
}