From bb25247c43bc896b13c5c1a8fc6c802b068000f2 Mon Sep 17 00:00:00 2001 From: codegirl-007 Date: Wed, 1 Jul 2026 00:31:42 -0700 Subject: [PATCH] set up game loop --- game.odin | 27 +++++++++++++++++++++++++++ main.odin | 6 ++++++ 2 files changed, 33 insertions(+) create mode 100644 game.odin 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) } }