njin
Engine 2D gọn nhẹ để tự tay làm game theo ý mình. Vibe coding cũng ổn luôn
Loading...
Searching...
No Matches
njin::body3d_desc Struct Tham chiếu

Mô tả một body vật lý 3D cho body3d_create(). Tiếp...

#include <njin_physics3d.h>

Các thuộc tính Public

shape3d_kind shape = shape3d_box
 Hình: hộp, cầu, viên nang hoặc trụ.
vec3 position {0.0f, 0.0f, 0.0f}
 Tâm.
vec3 rotation {0.0f, 0.0f, 0.0f}
 Góc xoay, độ, cùng thứ tự với njin::transform3d.
vec3 size {1.0f, 1.0f, 1.0f}
 Kích thước của hộp theo x, y, z.
f32 radius = 0.5f
 Bán kính (cầu, viên nang, trụ).
f32 height = 1.0f
 Chiều cao cả hình theo y (viên nang, trụ).
body3d_motion motion = body3d_static
 Cách chuyển động.
f32 mass = 1.0f
 Khối lượng, kg, chỉ cho body động.
f32 friction = 0.5f
 Ma sát, 0..1.
f32 restitution = 0.0f
 Độ nảy, 0 (không nảy) .
u64 user = 0
 Số của game gắn vào body (chỉ số trong mảng, id entity...), đọc lại bằng body3d_user() hoặc từ kết quả physics3d_raycast().
model_handle model {}
 Lấy hình từ model này (model_load()) thay cho shape.
vec3 scale {1.0f, 1.0f, 1.0f}
 Tỉ lệ của model, như njin::transform3d::scale.
bool sensor = false
 Chỉ phát hiện, không va chạm: vật và nhân vật đi xuyên qua, còn engine báo sự kiện chạm (physics3d_contact()).

Mô tả chi tiết

Mô tả một body vật lý 3D cho body3d_create().

Hình và kích thước theo cùng quy ước với njin::shape3d, nên một body và hình vẽ nó dùng chung số: shape, size (hộp), radius, height (viên nang, trụ, cả hình theo trục y). Hình xuyến (njin::shape3d_torus) không có body.

Có model thì hình của body lấy từ lưới tam giác của model đó, đặt như draw_model() vẽ nó với cùng position, rotation và scale.

Thông tin về Member Data

◆ restitution

f32 njin::body3d_desc::restitution = 0.0f

Độ nảy, 0 (không nảy) .

. 1 (nảy hết).

◆ model

model_handle njin::body3d_desc::model {}

Lấy hình từ model này (model_load()) thay cho shape.

Body tĩnh và kinematic dùng đúng từng tam giác: sàn, dốc, hang của một màn làm trong Blender. Body động dùng bao lồi của các đỉnh (hình lồi nhỏ nhất bọc model).

◆ sensor

bool njin::body3d_desc::sensor = false

Chỉ phát hiện, không va chạm: vật và nhân vật đi xuyên qua, còn engine báo sự kiện chạm (physics3d_contact()).

Cho vùng nhặt đồ, checkpoint, bẫy, đích.