Setup
-
Installing :
-
Execute :
-
zig cc main.zig -L../raylib/lib -lraylib -lopengl32 -lgdi32 -lwinmm -o main.exe-
zig cc→ Zig’s C compiler driver (works like clang/gcc). -
-I../raylib/include→ includes the Raylib headers. -
-L../raylib/lib -lraylib→ links Raylib library. -
-lopengl32 -lgdi32 -lwinmm→ Windows dependencies. -
-o main.exe→ output executable.
-
-
Moving Ball
const std = @import("std");
const rl = @import("../raylib/src/raylib.zig");
pub fn main() void {
const SCREEN_WIDTH: i32 = 800;
const SCREEN_HEIGHT: i32 = 450;
rl.InitWindow(SCREEN_WIDTH, SCREEN_HEIGHT, "Raylib in Zig | 1_moving_ball");
rl.SetTargetFPS(60);
var ball_position = rl.Vector2{
.x = SCREEN_WIDTH / 2.0,
.y = SCREEN_HEIGHT / 2.0,
};
while (!rl.WindowShouldClose()) : (void) {
// Update ball position
if (rl.IsKeyDown(rl.KEY_RIGHT)) ball_position.x += 2.0;
if (rl.IsKeyDown(rl.KEY_LEFT)) ball_position.x -= 2.0;
if (rl.IsKeyDown(rl.KEY_UP)) ball_position.y -= 2.0;
if (rl.IsKeyDown(rl.KEY_DOWN)) ball_position.y += 2.0;
// Draw
rl.BeginDrawing();
rl.ClearBackground(rl.RAYWHITE);
rl.DrawText("move the ball with arrow keys", 10, 10, 20, rl.DARKGRAY);
rl.DrawCircleV(ball_position, 50.0, rl.MAROON);
rl.EndDrawing();
}
rl.CloseWindow();
}