diff --git a/game.odin b/game.odin new file mode 100644 index 0000000..2538397 --- /dev/null +++ b/game.odin @@ -0,0 +1,27 @@ +package main + +import rl "vendor:raylib" + +Game :: struct { + running: bool, + time: f32, // total time elapsed +} + +game_init :: proc() -> Game { + return Game{running = true, time = 0} +} + +game_update :: proc(g: ^Game, dt: f32) { + g.time += dt + + if rl.IsKeyPressed(.ESCAPE) { + g.running = false + } +} + +game_draw :: proc(g: ^Game) { + fps := rl.GetFPS() + rl.DrawText(rl.TextFormat("FPS: %i", fps), 10, 36, 20, rl.GREEN) + rl.DrawText(rl.TextFormat("Time: %.1fs", g.time), 10, 62, 20, rl.GRAY) +} + diff --git a/main.odin b/main.odin index 7d54751..ca2847d 100644 --- a/main.odin +++ b/main.odin @@ -8,11 +8,17 @@ main :: proc() { rl.SetTargetFPS(60) + game := game_init() + for !rl.WindowShouldClose() { rl.BeginDrawing() defer rl.EndDrawing() + dt := rl.GetFrameTime() + game_update(&game, dt) + rl.ClearBackground({30, 33, 40, 255}) + game_draw(&game) } }