using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using GlitchyEngine; using GlitchyEngine.Math; using static GlitchyEngine.Math.Math; namespace Sandbox; public class Camera : Entity { public float DistanceFromPlayer = 5.0f; public float DontFollowRadius = 3.0f; void OnUpdate(float deltaTime) { Entity player = FindEntityWithName("Player"); if (player != null) { float2 playerPosition = player.Transform.Translation.XY; float2 cameraPosition = Transform.Translation.XY; float2 distanceVector = playerPosition - cameraPosition; float distance = length(distanceVector); float2 neededMovement = float2.Zero; if (distance > DontFollowRadius) { neededMovement = distanceVector - (distanceVector / distance) * DontFollowRadius; } Transform.Translation = new float3(cameraPosition + neededMovement, DistanceFromPlayer); } else { Log.Error("Player not found!"); } } }