Files
game-jam/src/main.odin
2026-02-18 21:58:08 -06:00

90 lines
1.7 KiB
Odin

package main
import "core:fmt"
import "core:strings"
import "vendor:raylib"
delta: f32
player: Player
main :: proc() {
fmt.println("Brackey's Game Jam 2026 :) ")
config_flags: raylib.ConfigFlags = {.WINDOW_RESIZABLE}
raylib.SetConfigFlags(config_flags)
raylib.InitWindow(1920, 1080, "Game")
defer raylib.CloseWindow()
raylib.SetTargetFPS(60)
raylib.SetExitKey(nil)
init_pause_menu()
init_world()
defer deinit_world()
player = {
position = {300, 300},
camera = {
zoom = 4,
offset = {f32(raylib.GetScreenWidth()) / 2, f32(raylib.GetScreenHeight()) / 2},
target = {player.position.x + (32 / 2), player.position.y + (32 / 2)},
},
sprite = load_sprite(PLAYER_SPRITE_PATH, PLAYER_WIDTH, PLAYER_HEIGHT),
}
for (!raylib.WindowShouldClose()) {
if !is_paused do delta = raylib.GetFrameTime()
raylib.BeginDrawing()
raylib.ClearBackground(raylib.BLACK)
raylib.BeginMode2D(player.camera)
raylib.DrawText("Ur mom", 100, 100, 50, raylib.BLACK)
draw()
raylib.EndMode2D()
raylib.DrawFPS(20, 20)
draw_pause_menu()
draw_player_grid_debug()
raylib.EndDrawing()
update(delta)
}
}
@(private = "file")
update :: proc(delta: f32) {
process_pause_menu_input()
if is_paused do return
update_world(delta)
update_player(&player, delta)
}
@(private = "file")
draw :: proc() {
draw_world()
draw_player(&player)
}
draw_player_grid_debug :: proc() {
gx, gy := player_pos_to_grid_pos()
tile := get_tile(&interactables_layer_grid, gx, gy)
type := tile.type
s := fmt.tprintf("Player Grid Pos: (%d, %d) | Tile: %v", gx, gy, type)
cs := strings.clone_to_cstring(s, context.temp_allocator)
raylib.DrawText(cs, 20, 40, 20, raylib.GREEN)
}