This commit is contained in:
2023-09-25 22:18:23 +02:00
parent 092d01dcae
commit c96db94de4
14 changed files with 323 additions and 47 deletions

View File

@@ -20,7 +20,8 @@ public class TestGame : Game
_renderer.CreateAndInitialize(new WindowSettings()
{
Title = "Test Game",
Size = new Vector2(1280, 720)
Size = new Vector2(1280, 720),
Resizable = true,
}, new RendererSettings()
{
UseVSync = true
@@ -73,25 +74,6 @@ public class TestGame : Game
{
while (!_scene.ShouldStop())
{
// _renderer.BeginFrame();
// _renderer.ClearBackground(Color.Black);
// if (_inputHandler.IsActionJustPressed("play"))
// {
// var instance = _audioBackend.CreateInstance(_testSound)
// .PitchVariation(min: 0.9f, max: 1.2f)
// .VolumeVariation(min: 0.90f, max: 1.0f);
// instance.Play();
// }
// _audioBackend.Update();
// _renderer.SetTransform(new Vector2(32, 32));
// _renderer.DrawCircle(16f, Color.Chocolate);
// _renderer.DrawText(_fontHandle, $"{(int)(1 / _renderer.GetFrameTime())} FPS", 20, Color.White);
// _renderer.EndFrame();
_scene.Update();
}
}

View File

@@ -1,34 +1,80 @@
using System.Numerics;
using DaggerFramework;
using DaggerFramework.Rendering;
using DaggerFramework.SceneGraph;
using DaggerFramework.UI;
using DaggerFramework.Utils;
public class UiLayer : EntityLayer
public class UiLayer : Layer
{
protected override void OnStart()
{
base.OnStart();
GetResources();
CreateAndAddEntities();
CreateUiElements();
}
protected override void OnUpdate(double dt)
{
base.OnUpdate(dt);
_fpsText.Text = $"{MathF.Round(1 / (float)dt)} FPS";
// _textLabel.Text = $"{MathF.Round(1 / (float)dt)} FPS";
_screenContainer.UpdateRect(Vector2.Zero, Scene.Renderer.WindowSize);
}
private void CreateAndAddEntities()
protected override void OnBeginDraw(Renderer renderer)
{
_fpsText = new Text2d()
}
protected override void OnDraw(Renderer renderer)
{
_screenContainer.Render(renderer);
}
protected override void OnEndDraw(Renderer renderer)
{
}
private void CreateUiElements()
{
_screenContainer = new Container();
_screenContainer.UpdateRect(Vector2.Zero, Scene.Renderer.WindowSize);
var style = new PanelStyle()
{
Font = _defaultFont,
Position = Vector2.One * 16,
FontSize = 20
BackgroundColor = new Color(0.25f, 0.25f, 0.25f, 1.0f)
};
AddEntity(_fpsText);
_panel = new MarginPanel(style)
{
ExpandRatio = new Vector2(0.5f, 1.0f),
RelativeMargin = Vector2.One * 0.01f
};
_screenContainer.AddChild(_panel);
var exampleText = new TextLabel()
{
Font = _defaultFont,
FontSize = 30,
Text = "This Panel will occupy 50% of the screen.\nHow cool is that?"
};
_panel.AddChild(exampleText);
// var verticalPanel = new VerticalPanel(new PanelStyle()
// {
// BackgroundColor = Color.White,
// });
// verticalPanel.ExpandRatio = new Vector2(1f, 0.5f);
// _panel.AddChild(verticalPanel);
// verticalPanel.AddChild(new Panel(new PanelStyle() { BackgroundColor = Color.Red }));
// verticalPanel.AddChild(new Panel(new PanelStyle() { BackgroundColor = Color.Green }));
// verticalPanel.AddChild(new Panel(new PanelStyle() { BackgroundColor = Color.Blue }));
}
private void GetResources()
@@ -36,6 +82,11 @@ public class UiLayer : EntityLayer
ResourceManager.TryGetResource("inter_regular", out _defaultFont);
}
private Text2d _fpsText;
private Font _defaultFont;
private Container _screenContainer;
private Panel _panel, _contentPanel;
private TextLabel _textLabel;
private Logger _logger = new(nameof(UiLayer));
}