using System.Numerics; using DaggerFramework; using DaggerFramework.Rendering; using DaggerFramework.Audio; using DaggerFramework.Resources; public class TestGame : Game { public override string ResourceRoot => "Resources/"; public override void Initialize() { _renderer = new RaylibRenderer(); _audioBackend = new FmodAudioBackend(); _inputHandler = new RaylibInputHandler(); _renderer.CreateAndInitialize(new WindowSettings() { Title = "Test Game", Size = new Vector2(1280, 720) }, RendererSettings.Default); _renderer.SetTargetFps(60); _audioBackend.Initialize(); } protected override void LoadResources() { if (_resourceManager.TryLoad("my_sound", "sounds/test_sound.ogg")) { _resourceManager.TryGetResource("my_sound", out _testSound); } if (_resourceManager.TryLoad("inter_regular", "fonts/Inter-Regular.ttf")) { _resourceManager.TryGetResource("inter_regular", out _font); } } protected override void Ready() { // _audioBackend.AddBusEffect(new AudioEffectReverb()); _inputHandler.AddInputMapping("play", new InputAction[] { new KeyInputAction(KeyboardKey.Spacebar) }); _fontHandle = _renderer.LoadFont(_font); } protected override void Run() { while (_renderer.ShouldRun) { _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(640, 480)); _renderer.DrawCircle(16f, Color.Chocolate); _renderer.DrawText(_fontHandle, "Hello World!", 24, Color.White); _renderer.EndFrame(); } } public override void Shutdown() { _renderer.Shutdown(); _audioBackend.Shutdown(); } private Renderer _renderer; private ResourceManager _resourceManager = new(); private Sound? _testSound; private Font? _font; private int _fontHandle; private FmodAudioBackend _audioBackend; private InputHandler _inputHandler; }