UI WIP
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
Reference in New Issue
Block a user