move away from bindings, now using native build.zig
This commit is contained in:
parent
8de184ff38
commit
41d076914f
5 changed files with 37 additions and 35 deletions
10
build.zig
10
build.zig
|
|
@ -1,5 +1,4 @@
|
|||
const std = @import("std");
|
||||
const raySdk = @import("raylib/src/build.zig");
|
||||
|
||||
pub fn build(b: *std.Build) void {
|
||||
const target = b.standardTargetOptions(.{});
|
||||
|
|
@ -12,9 +11,12 @@ pub fn build(b: *std.Build) void {
|
|||
.optimize = optimize,
|
||||
});
|
||||
|
||||
const raylib = raySdk.addRaylib(b, target, optimize, .{});
|
||||
exe.addIncludePath(.{ .path = "raylib/src" });
|
||||
exe.linkLibrary(raylib);
|
||||
const rl = b.dependency("raylib", .{
|
||||
.target = target,
|
||||
.optimize = optimize,
|
||||
});
|
||||
|
||||
exe.linkLibrary(rl.artifact("raylib"));
|
||||
|
||||
b.installArtifact(exe);
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,11 @@
|
|||
|
||||
.version = "0.0.0",
|
||||
|
||||
.dependencies = .{},
|
||||
.dependencies = .{
|
||||
.raylib = .{
|
||||
.path = "raylib",
|
||||
},
|
||||
},
|
||||
|
||||
.paths = .{
|
||||
"build.zig",
|
||||
|
|
|
|||
47
src/main.zig
47
src/main.zig
|
|
@ -1,7 +1,6 @@
|
|||
const std = @import("std");
|
||||
const raylib = @cImport({
|
||||
@cInclude("raylib.h");
|
||||
});
|
||||
const rh = @import("util/raylib_helper.zig");
|
||||
const raylib = rh.raylib;
|
||||
const chunks = @import("world/chunk.zig");
|
||||
|
||||
pub fn drawCameraPosition(camera: raylib.Camera3D, x: i32, y: i32) !void {
|
||||
|
|
@ -16,18 +15,9 @@ pub fn drawCameraPosition(camera: raylib.Camera3D, x: i32, y: i32) !void {
|
|||
raylib.DrawText(slice, x, y, 20, raylib.YELLOW);
|
||||
}
|
||||
|
||||
pub fn moveCamera(camera: *raylib.Camera3D, x: f32, y: f32, z: f32) void {
|
||||
camera.position.x += x;
|
||||
camera.target.x += x;
|
||||
camera.position.y += y;
|
||||
camera.target.y += y;
|
||||
camera.position.z += z;
|
||||
camera.target.z += z;
|
||||
}
|
||||
|
||||
pub fn moveCameraVec(camera: *raylib.Camera3D, vec: raylib.Vector3) void {
|
||||
camera.position = camera.position.add(vec);
|
||||
camera.target = camera.target.add(vec);
|
||||
pub fn moveCamera(camera: *raylib.Camera3D, vec: raylib.Vector3) void {
|
||||
camera.position = raylib.Vector3Add(camera.position, vec);
|
||||
camera.target = raylib.Vector3Add(camera.target, vec);
|
||||
}
|
||||
|
||||
pub fn main() !void {
|
||||
|
|
@ -38,7 +28,7 @@ pub fn main() !void {
|
|||
if (status == .leak) std.debug.print("MEMORY LEAK DETECTED!!!!!!!!!!!!!!!!!!!!!!\n", .{}) else std.debug.print("no leaks detected.\n", .{});
|
||||
}
|
||||
|
||||
raylib.SetConfigFlags(raylib.ConfigFlags{ .FLAG_WINDOW_RESIZABLE = true });
|
||||
raylib.SetConfigFlags(raylib.FLAG_WINDOW_RESIZABLE);
|
||||
|
||||
raylib.InitWindow(1024, 768, "voxel test");
|
||||
defer raylib.CloseWindow();
|
||||
|
|
@ -51,7 +41,7 @@ pub fn main() !void {
|
|||
.up = raylib.Vector3{ .x = 0, .y = 1, .z = 0 },
|
||||
.target = raylib.Vector3{ .x = 0, .y = 0, .z = -1 },
|
||||
.fovy = 45,
|
||||
.projection = raylib.CameraProjection.CAMERA_PERSPECTIVE,
|
||||
.projection = raylib.CAMERA_PERSPECTIVE,
|
||||
};
|
||||
|
||||
var chunk = try chunks.Chunk.init(a7r);
|
||||
|
|
@ -67,22 +57,25 @@ pub fn main() !void {
|
|||
while (!raylib.WindowShouldClose()) {
|
||||
raylib.ClearBackground(raylib.GRAY);
|
||||
|
||||
const right = raylib.Vector3CrossProduct(camera.up, raylib.Vector3Subtract(camera.target, camera.position)).normalize().neg();
|
||||
const right = raylib.Vector3Negate(raylib.Vector3Normalize(raylib.Vector3CrossProduct(camera.up, raylib.Vector3Subtract(camera.target, camera.position))));
|
||||
const forward = raylib.Vector3CrossProduct(right, raylib.Vector3{ .x = 0, .y = -1, .z = 0 });
|
||||
|
||||
const movement = @as(f32, if (raylib.IsKeyDown(raylib.KeyboardKey.KEY_LEFT_CONTROL)) 25 else 5) * raylib.GetFrameTime();
|
||||
const speed = @as(f32, if (raylib.IsKeyDown(raylib.KEY_LEFT_CONTROL)) 25 else 5) * raylib.GetFrameTime();
|
||||
var movement = raylib.Vector3Zero();
|
||||
|
||||
if (raylib.IsKeyDown(raylib.KeyboardKey.KEY_SPACE)) moveCamera(&camera, 0, movement, 0);
|
||||
if (raylib.IsKeyDown(raylib.KeyboardKey.KEY_LEFT_SHIFT)) moveCamera(&camera, 0, -movement, 0);
|
||||
if (raylib.IsKeyDown(raylib.KEY_SPACE)) movement.y += 1;
|
||||
if (raylib.IsKeyDown(raylib.KEY_LEFT_SHIFT)) movement.y -= 1;
|
||||
|
||||
if (raylib.IsKeyDown(raylib.KeyboardKey.KEY_W)) moveCameraVec(&camera, forward.scale(movement));
|
||||
if (raylib.IsKeyDown(raylib.KeyboardKey.KEY_S)) moveCameraVec(&camera, forward.scale(-movement));
|
||||
if (raylib.IsKeyDown(raylib.KeyboardKey.KEY_D)) moveCameraVec(&camera, right.scale(movement));
|
||||
if (raylib.IsKeyDown(raylib.KeyboardKey.KEY_A)) moveCameraVec(&camera, right.scale(-movement));
|
||||
if (raylib.IsKeyDown(raylib.KEY_W)) movement = raylib.Vector3Add(movement, forward);
|
||||
if (raylib.IsKeyDown(raylib.KEY_S)) movement = raylib.Vector3Subtract(movement, forward);
|
||||
if (raylib.IsKeyDown(raylib.KEY_D)) movement = raylib.Vector3Add(movement, right);
|
||||
if (raylib.IsKeyDown(raylib.KEY_A)) movement = raylib.Vector3Subtract(movement, right);
|
||||
|
||||
moveCamera(&camera, raylib.Vector3Scale(raylib.Vector3Normalize(movement), speed));
|
||||
|
||||
const delta = raylib.GetMouseDelta();
|
||||
camera.target = camera.position.add(raylib.Vector3RotateByAxisAngle(camera.target.sub(camera.position), raylib.Vector3{ .x = 0, .y = 1, .z = 0 }, -0.005 * delta.x));
|
||||
camera.target = camera.position.add(raylib.Vector3RotateByAxisAngle(camera.target.sub(camera.position), right, -0.005 * delta.y));
|
||||
camera.target = raylib.Vector3Add(camera.position, raylib.Vector3RotateByAxisAngle(raylib.Vector3Subtract(camera.target, camera.position), raylib.Vector3{ .x = 0, .y = 1, .z = 0 }, -0.005 * delta.x));
|
||||
camera.target = raylib.Vector3Add(camera.position, raylib.Vector3RotateByAxisAngle(raylib.Vector3Subtract(camera.target, camera.position), right, -0.005 * delta.y));
|
||||
|
||||
raylib.BeginDrawing();
|
||||
defer raylib.EndDrawing();
|
||||
|
|
|
|||
4
src/util/raylib_helper.zig
Normal file
4
src/util/raylib_helper.zig
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
pub const raylib = @cImport({
|
||||
@cInclude("raylib.h");
|
||||
@cInclude("raymath.h");
|
||||
});
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
const std = @import("std");
|
||||
const raylib = @cImport({
|
||||
@cInclude("raylib.h");
|
||||
});
|
||||
const rh = @import("../util/raylib_helper.zig");
|
||||
const raylib = rh.raylib;
|
||||
const A7r = std.mem.Allocator;
|
||||
|
||||
pub const Chunk = struct {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue