using System.Numerics; using Voile; using Voile.Rendering; using Voile.Audio; using Voile.Resources; using Voile.SceneGraph; using Voile.Utils; public class TestGame : Game { public override string ResourceRoot => "Resources/"; public override void Initialize() { _renderer = new StandardRenderer(); _audioBackend = new FmodAudioBackend(); // _inputHandler = new RaylibInputHandler(); _resourceManager.AddResourceSaverAssociation(new SerializedSceneSaver()); _renderer.CreateAndInitialize(new WindowSettings() { Title = "Test Game", Size = new Vector2(1280, 720), }, new RendererSettings() { UseVSync = true, Fullscreen = false }); _audioBackend.Initialize(); _scene = new Scene(new SceneSettings() { Renderer = _renderer, AudioBackend = _audioBackend, InputHandler = _inputHandler, ResourceManager = _resourceManager }); _uiLayer = new UiLayer(); _worldLayer = new EntityLayer(); } public override void Shutdown() { _renderer!.Shutdown(); _audioBackend?.Shutdown(); } 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); if (_font is not null) { _font.Size = 20; } } } protected override void Ready() { // _inputHandler!.AddInputMapping("play", new InputAction[] { new KeyInputAction(KeyboardKey.Spacebar) }); // _inputHandler.AddInputMapping("sprint", new InputAction[] { new KeyInputAction(KeyboardKey.LeftShift) }); // _inputHandler.AddInputMapping("toggle_fullscreen", new InputAction[] { new KeyInputAction(KeyboardKey.F11) }); // _scene!.AddLayer("World", _worldLayer!); // _worldLayer!.AddEntity(new World()); // _worldLayer.AddEntity(new TestPlayer()); // _scene.AddLayer("UI", _uiLayer!); // _scene.Start(); } protected override void Run() { while (_renderer.ShouldRun) { // _scene.Update(); // if (_inputHandler!.IsActionPressed("toggle_fullscreen")) // { // _renderer!.Fullscreen = !_renderer.Fullscreen; // _logger.Info($"Fullscreen: {_renderer.Fullscreen}"); // } // _scene.BeginDraw(); // _scene.EndDraw(); _renderer.BeginFrame(); _renderer.ClearBackground(Color.Red); _renderer.ClearBackground(Color.Blue); _renderer.EndFrame(); } } private Renderer? _renderer; private ResourceManager _resourceManager = new(); private Sound? _testSound; private Font? _font; private FmodAudioBackend? _audioBackend; private InputHandler? _inputHandler; private Scene? _scene; private UiLayer? _uiLayer; private EntityLayer? _worldLayer; private Logger _logger = new(nameof(TestGame)); }