diff --git a/scenes/player/Camera.cs b/scenes/player/Camera.cs new file mode 100644 index 0000000..624db51 --- /dev/null +++ b/scenes/player/Camera.cs @@ -0,0 +1,20 @@ +using Godot; +using System; + +public class Camera : Camera2D +{ + private Event _event; + + public override void _Ready() + { + _event = GetNode("/root/Event"); + } + + public override void _PhysicsProcess(float delta) + { + var rect = GetViewportRect(); + var owner = (Node2D) Owner; + rect.Position = owner.Position - rect.Size / 2; + _event.EmitSignal("CameraView", rect); + } +} diff --git a/scripts/Event.cs b/scripts/Event.cs index 125cedc..96535ad 100644 --- a/scripts/Event.cs +++ b/scripts/Event.cs @@ -14,4 +14,6 @@ public sealed class Event : Node delegate void PlayerTouched(); [Signal] delegate void DebugState(string state); + [Signal] + delegate void CameraView(Rect2 rect); }