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ả 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.
| f32 njin::body3d_desc::restitution = 0.0f |
Độ nảy, 0 (không nảy) .
. 1 (nảy hết).
| 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).
| 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.