Chạy animation từ một sheet có clip, cho entity có sprite. Tiếp...
#include <njin_anim.h>
Các thuộc tính Public | |
| anim_graph_handle | graph {} |
| Máy trạng thái. Có thì sheet bị bỏ qua. | |
| anim_sheet_handle | sheet {} |
| Sheet, khi không dùng graph. | |
| f32 | speed = 1.0f |
| Tốc độ chung. 0 là đứng hình. | |
| bool | playing = true |
| false để dừng ở frame hiện tại. | |
Trạng thái (do engine quản lý, chỉ đọc) | |
| i32 | state = -1 |
| Trạng thái hiện tại trong graph, -1 là chưa bắt đầu. | |
| i32 | clip = -1 |
| Clip đang chạy, -1 là không có. | |
| i32 | frame = -1 |
| Frame đang hiện trong sheet, -1 là chưa có. | |
| i32 | step = 0 |
| Vị trí trong thứ tự chạy của clip. | |
| f32 | time = 0.0f |
| Thời gian đã ở frame hiện tại, giây. | |
| f32 | state_time = 0.0f |
| Thời gian đã ở trạng thái (hoặc clip) hiện tại, giây. | |
| i32 | loops = 0 |
| Số lượt clip đã chạy xong. | |
| i32 | repeat = 0 |
| Số lượt của clip hiện tại, 0 là lặp mãi. | |
| bool | finished = false |
| Clip không lặp đã chạy hết và dừng ở frame cuối. | |
| std::array< f32, anim_max_params > | params {} |
| Giá trị các tham số của graph. | |
Chạy animation từ một sheet có clip, cho entity có sprite.
Module anim của engine, trong phase_post_update, xét chuyển trạng thái, cho frame chạy theo delta() và ghi sprite.texture, sprite.source. Hai cách dùng:
Đây là bản đầy đủ của njin::sprite_anim: thời lượng riêng từng frame, clip có tên, chạy ngược và ping-pong. Đừng gắn cả hai lên một entity.