32 lines
1.4 KiB
C#
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;
|
|
}
|
|
}
|