25 const char *
name =
nullptr;
132 const char *
to =
nullptr;
204 std::array<f32, anim_max_params>
params{};
218 bool restart =
false);
bool animator_play(const context &ctx, animator &anim, const char *name, bool restart=false)
Chuyển ngay sang một clip (không graph) hoặc một trạng thái (có graph).
constexpr i32 anim_max_params
Số tham số tối đa của một máy trạng thái.
Definition njin_anim.h:166
void animator_set(const context &ctx, animator &anim, const char *param, f32 value)
Đặt một tham số số của graph, ví dụ tốc độ chạy.
void anim_sheet_unload(context &ctx, anim_sheet_handle sheet)
Giải phóng sheet, và ảnh của nó nếu sheet nạp từ Aseprite.
anim_sheet_handle anim_sheet_grid(context &ctx, texture_handle texture, vec2 frame_size, f32 fps)
Tạo sprite sheet từ một ảnh chia lưới đều, không có clip nào.
anim_sheet_handle anim_sheet_load(context &ctx, const char *json_path)
Nạp sprite sheet và các clip từ file JSON do Aseprite xuất ra.
void animator_trigger(const context &ctx, animator &anim, const char *param)
Bật một trigger của graph cho frame này, ví dụ vừa bấm nút đánh.
void animator_set_bool(const context &ctx, animator &anim, const char *param, bool value)
Đặt một tham số bool của graph, ví dụ đang đứng trên đất.
bool animator_in(const context &ctx, const animator &anim, const char *name)
Đang ở trạng thái (có graph) hoặc clip (không graph) này không.
f32 anim_clip_duration(const context &ctx, anim_sheet_handle sheet, const char *name)
Thời lượng một lượt chạy của clip, giây.
i32 anim_clip_find(const context &ctx, anim_sheet_handle sheet, const char *name)
Tìm clip theo tên.
const char * animator_current(const context &ctx, const animator &anim)
Tên trạng thái (có graph) hoặc clip (không graph) hiện tại.
anim_graph_handle anim_graph_create(context &ctx, const anim_graph_desc &desc)
Tạo một máy trạng thái animation.
bool anim_sheet_add_clip(context &ctx, anim_sheet_handle sheet, const anim_clip_desc &desc)
Thêm một clip vào sheet.
anim_cmp
Phép so sánh của một điều kiện chuyển trạng thái.
Definition njin_anim.h:95
anim_direction
Thứ tự chạy các frame của một clip, giống tùy chọn "Animation Direction" của tag trong Aseprite.
Definition njin_anim.h:15
@ anim_lt
Tham số nhỏ hơn value.
Definition njin_anim.h:97
@ anim_le
Tham số nhỏ hơn hoặc bằng value.
Definition njin_anim.h:99
@ anim_ne
Tham số khác value.
Definition njin_anim.h:101
@ anim_false
Tham số bằng 0 (bool đang tắt).
Definition njin_anim.h:103
@ anim_eq
Tham số bằng value.
Definition njin_anim.h:100
@ anim_gt
Tham số lớn hơn value.
Definition njin_anim.h:96
@ anim_ge
Tham số lớn hơn hoặc bằng value.
Definition njin_anim.h:98
@ anim_trigger
Tham số được bật bằng animator_trigger() trong frame này.
Definition njin_anim.h:106
@ anim_true
Tham số khác 0 (bool đang bật).
Definition njin_anim.h:102
@ anim_forward
Từ frame đầu đến frame cuối.
Definition njin_anim.h:16
@ anim_ping_pong
Đi rồi về: 0 1 2 3 2 1, rồi lặp.
Definition njin_anim.h:18
@ anim_reverse
Từ frame cuối về frame đầu.
Definition njin_anim.h:17
@ anim_ping_pong_reverse
Về rồi đi: 3 2 1 0 1 2, rồi lặp.
Definition njin_anim.h:19
f32 fps(const context &ctx)
Trả về FPS mục tiêu đã cấu hình (target_fps).
std::int32_t i32
Số nguyên có dấu 32 bit.
Definition _types.h:14
float f32
Số thực 32 bit.
Definition _types.h:28
Mô tả một clip (một đoạn animation có tên) trong sprite sheet, dùng với anim_sheet_add_clip().
Definition njin_anim.h:24
i32 to
Frame cuối, gồm cả frame này.
Definition njin_anim.h:27
const char * name
Tên clip, duy nhất trong sheet.
Definition njin_anim.h:25
anim_direction direction
Thứ tự chạy.
Definition njin_anim.h:28
i32 from
Frame đầu, tính từ 0.
Definition njin_anim.h:26
i32 repeat
Số lượt chạy rồi dừng ở frame cuối. 0 là lặp mãi.
Definition njin_anim.h:30
Một điều kiện của chuyển trạng thái.
Definition njin_anim.h:110
anim_cmp cmp
Phép so sánh.
Definition njin_anim.h:112
const char * param
Tên tham số.
Definition njin_anim.h:111
f32 value
Giá trị so sánh (bỏ qua với true/false/trigger).
Definition njin_anim.h:113
Mô tả một máy trạng thái animation, dùng với anim_graph_create().
Definition njin_anim.h:158
std::vector< anim_transition_desc > transitions
Các chuyển trạng thái.
Definition njin_anim.h:161
std::vector< anim_state_desc > states
Các trạng thái.
Definition njin_anim.h:160
const char * start
Trạng thái ban đầu. null là trạng thái đầu tiên.
Definition njin_anim.h:162
anim_sheet_handle sheet
Sheet chứa các clip.
Definition njin_anim.h:159
Định danh của một máy trạng thái animation, tạo bởi anim_graph_create().
Definition _types.h:330
Định danh của một sprite sheet có animation, tạo bởi anim_sheet_load() hoặc anim_sheet_grid().
Definition _types.h:322
Một trạng thái của máy trạng thái: một clip được chạy khi ở trạng thái đó.
Definition njin_anim.h:117
f32 speed
Tốc độ chạy clip.
Definition njin_anim.h:120
const char * clip
Tên clip trong sheet của graph.
Definition njin_anim.h:119
const char * name
Tên trạng thái, duy nhất trong graph.
Definition njin_anim.h:118
i32 repeat
Ghi đè số lượt của clip (xem anim_clip_desc::repeat). -1 là giữ như clip.
Definition njin_anim.h:122
Một chuyển trạng thái: từ from sang to khi mọi điều kiện đúng.
Definition njin_anim.h:129
std::vector< anim_cond > when
Các điều kiện, phải đúng tất cả.
Definition njin_anim.h:133
bool after_finish
Chỉ chuyển khi clip hiện tại đã chạy hết ít nhất một lượt.
Definition njin_anim.h:136
const char * from
Trạng thái nguồn. null là "từ mọi trạng thái" (trừ chính to).
Definition njin_anim.h:131
const char * to
Trạng thái đích.
Definition njin_anim.h:132
Chạy animation từ một sheet có clip, cho entity có sprite.
Definition njin_anim.h:187
std::array< f32, anim_max_params > params
Giá trị các tham số của graph.
Definition njin_anim.h:204
i32 clip
Clip đang chạy, -1 là không có.
Definition njin_anim.h:196
i32 repeat
Số lượt của clip hiện tại, 0 là lặp mãi.
Definition njin_anim.h:202
anim_graph_handle graph
Máy trạng thái. Có thì sheet bị bỏ qua.
Definition njin_anim.h:188
anim_sheet_handle sheet
Sheet, khi không dùng graph.
Definition njin_anim.h:189
bool finished
Clip không lặp đã chạy hết và dừng ở frame cuối.
Definition njin_anim.h:203
i32 frame
Frame đang hiện trong sheet, -1 là chưa có.
Definition njin_anim.h:197
f32 state_time
Thời gian đã ở trạng thái (hoặc clip) hiện tại, giây.
Definition njin_anim.h:200
i32 loops
Số lượt clip đã chạy xong.
Definition njin_anim.h:201
f32 time
Thời gian đã ở frame hiện tại, giây.
Definition njin_anim.h:199
f32 speed
Tốc độ chung. 0 là đứng hình.
Definition njin_anim.h:190
bool playing
false để dừng ở frame hiện tại.
Definition njin_anim.h:191
i32 state
Trạng thái hiện tại trong graph, -1 là chưa bắt đầu.
Definition njin_anim.h:195
i32 step
Vị trí trong thứ tự chạy của clip.
Definition njin_anim.h:198
Định danh của một texture, tạo bởi texture_load().
Definition _types.h:146
Vector 2 chiều. Dùng cho vị trí, kích thước, độ dời.
Definition _types.h:39