const std = @import("std"); const SDL = @import("sdl2"); const Renderer = @import("Renderer.zig"); const Game = @import("Game.zig"); const MainMenu = @import("MainMenu.zig"); const State = @import("flow.zig").State; pub fn main() !void { var renderer = try Renderer.init(); defer renderer.deinit(); var main_menu = MainMenu.init(renderer); var game = Game.init(renderer); var current_state: State = main_menu.state; try SDL.image.init(.{ .jpg = true }); mainLoop: while (true) { const start = SDL.getTicks64(); while (SDL.pollEvent()) |ev| { switch (ev) { .quit => break :mainLoop, else => {}, } } current_state = switch (current_state) { .main_menu => main_menu.tick(), .game => game.tick(), }; renderer.render(); const delay = SDL.getTicks64() - start; std.debug.print("{} ms\n", .{delay}); if (delay < 16) { SDL.delay(16 - @intCast(u32, delay)); } } }