Files
Engine-Template/Platforms/Desktop/Engine.Integration.SDL3/CameraController2D.cs

32 lines
1.4 KiB
C#

using Engine.Core;
using SDL3;
namespace Engine.Integration.SDL3;
public class CameraController2D : Behaviour2D, IFirstFrameUpdate, IUpdate
{
private Sdl3KeyboardInputs keyboardInputs = null!;
private ICamera2D camera = null!;
public void FirstActiveFrame()
{
keyboardInputs = Universe.FindRequiredBehaviour<Sdl3KeyboardInputs>();
camera = BehaviourController.GetRequiredBehaviourInParent<ICamera2D>();
}
public void Update()
{
if (keyboardInputs.IsPressed(SDL.Keycode.W)) Transform.Position += Transform.Up * Universe.Time.DeltaTime * 100f;
if (keyboardInputs.IsPressed(SDL.Keycode.A)) Transform.Position += Transform.Left * Universe.Time.DeltaTime * 100f;
if (keyboardInputs.IsPressed(SDL.Keycode.S)) Transform.Position += Transform.Down * Universe.Time.DeltaTime * 100f;
if (keyboardInputs.IsPressed(SDL.Keycode.D)) Transform.Position += Transform.Right * Universe.Time.DeltaTime * 100f;
if (keyboardInputs.IsPressed(SDL.Keycode.Q)) Transform.Rotation += Universe.Time.DeltaTime * 45f;
if (keyboardInputs.IsPressed(SDL.Keycode.E)) Transform.Rotation -= Universe.Time.DeltaTime * 45f;
if (keyboardInputs.IsPressed(SDL.Keycode.R)) camera.Zoom += Universe.Time.DeltaTime * 15f;
if (keyboardInputs.IsPressed(SDL.Keycode.F)) camera.Zoom -= Universe.Time.DeltaTime * 15f;
}
}