delta time

This commit is contained in:
Vinzenz Schroeter 2024-04-16 19:40:08 +02:00
commit e16d4b1c1f

View file

@ -8,15 +8,15 @@ internal sealed class MoveTanks(
{
private readonly TanksConfiguration _config = options.Value;
public Task TickAsync()
public Task TickAsync(TimeSpan delta)
{
foreach (var tank in tanks)
tank.Moved = TryMoveTank(tank);
tank.Moved = TryMoveTank(tank, delta);
return Task.CompletedTask;
}
private bool TryMoveTank(Tank tank)
private bool TryMoveTank(Tank tank, TimeSpan delta)
{
var player = tank.Owner;
@ -36,6 +36,8 @@ internal sealed class MoveTanks(
return false;
}
speed *= delta.TotalSeconds;
var angle = tank.Orientation / 16d * 2d * Math.PI;
var newX = tank.Position.X + Math.Sin(angle) * speed;
var newY = tank.Position.Y - Math.Cos(angle) * speed;