API renames, change ref renderer to in renderer in IDrawable, make Layer implement IDrawable.

This commit is contained in:
2023-06-15 22:39:34 +02:00
parent bf4fb6e1e3
commit 964b903500
18 changed files with 122 additions and 67 deletions

13
TestGame/Circle2d.cs Normal file
View File

@@ -0,0 +1,13 @@
using DaggerFramework.Rendering;
using System.Drawing;
namespace DaggerFramework;
public class Circle2d : Drawable2d
{
public override void OnDraw(in Renderer renderer)
{
renderer.DrawCircle(32f, Color.AliceBlue);
}
}

View File

@@ -1,52 +1,40 @@
using DaggerFramework;
using DaggerFramework.Audio;
using System.Numerics;
using DaggerFramework.Rendering;
public class TestGame : Game
{
public override string ResourceRoot => "Resources/";
public override void Shutdown() => scene.Renderer.CloseWindow();
protected override void OnStart()
{
_renderer = new RaylibRenderer();
_inputHandler = new RaylibInputHandler();
scene = new Scene(_renderer, _inputHandler, new DummyAudioBackend());
var mainGameLayer = new EntityLayer();
scene.AddLayer("World", mainGameLayer);
var text = new Text2d();
text.Contents = "Hello World!";
text.FontSize = 32;
var sprite = new Sprite2d();
sprite.Texture = _funnyTexture;
mainGameLayer.AddEntity(text);
mainGameLayer.AddEntity(sprite);
scene.Init();
scene.Start();
MainLoop();
_renderer.CreateAndInitialize(new WindowSettings()
{
Title = "Test Game",
Size = new Vector2(1280, 720)
}, RendererSettings.Default);
}
protected override void LoadResources()
{
_funnyTexture = _textureLoader.Load($"{ResourceRoot}icon.png");
}
protected override void MainLoop()
{
while (!scene.ShouldStop()) scene.Update();
while (_renderer.ShouldRun)
{
_renderer.BeginFrame();
_renderer.ClearBackground(System.Drawing.Color.Black);
_renderer.EndFrame();
}
}
public override void Shutdown()
{
_renderer.Shutdown();
}
private Renderer _renderer;
private RaylibInputHandler _inputHandler;
private Texture2dLoader _textureLoader = new();
private Texture2d? _funnyTexture;
}