KumiScript/Game.cs
2024-01-25 23:37:51 -06:00

51 lines
1.6 KiB
C#

using KumiScript.Renderer;
using SDL2;
public class EngineWindow
{
internal ushort width {get; private set;}
internal ushort height {get; private set;}
internal string title {get; private set;}
public EngineWindow(ushort horizontalResolution, ushort verticalResolution, string windowTitle)
{
width = horizontalResolution;
height = verticalResolution;
title = windowTitle;
if (SDL.SDL_Init(SDL.SDL_INIT_VIDEO) < 0)
throw new Exception("SDL2 Video init failed!");
if (SDL_image.IMG_Init(SDL_image.IMG_InitFlags.IMG_INIT_PNG) < 0)
throw new Exception("SDL2 Image init failed!");
}
public void show()
{
SDLWindow window = new SDLWindow(width, height, title);
SDLRenderer renderer = new SDLRenderer(window);
bool mainLoop = true;
SDL.SDL_Event e;
Scene s = new Scene(renderer);
SceneElement background = new SceneElement(new Background("Resources/Backgrounds/test.png", renderer), 0, 0);
SceneElement seiba = new SceneElement(new Sprite("Resources/Sprites/test.png", renderer), 0, 0);
s.AddElement(background);
s.AddElement(seiba);
while (mainLoop)
{
while (SDL.SDL_PollEvent(out e) > 0)
{
switch (e.type)
{
case SDL.SDL_EventType.SDL_QUIT:
mainLoop = false;
break;
}
renderer.Clear();
s.DrawScene();
renderer.SwapBuffers();
}
}
}
}