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::dissolve_fx Struct Tham chiếu

Cho một sprite tan biến từng mảng nhỏ, có viền cháy sáng ở chỗ đang tan: kẻ địch chết, vật phẩm biến mất. Tiếp...

#include <njin_fx.h>

Các thuộc tính Public

rgba edge_color {1.0f, 0.55f, 0.1f, 1.0f}
 Màu viền cháy. a là độ đậm, 0 là bỏ viền.
f32 edge_width = 0.08f
 Độ dày viền, tính theo thang ngẫu nhiên 0..1. 0 là bỏ viền.
f32 grain = 2.0f
 Cỡ mỗi mảng, tính bằng pixel của ảnh sprite. 1 là từng pixel, lớn hơn là mảng to.
f32 seed = 0.0f
 Đổi hình mẫu tan biến. Cho mỗi kẻ địch một giá trị riêng để chúng không tan giống hệt nhau.
f32 duration = 0.6f
 Thời gian tan hết, giây.
f32 time = 0.0f
 Thời gian đã trôi qua, do engine cập nhật.
bool reverse = false
 true: hiện ra dần thay vì tan biến.
bool destroy_when_done = false
 Hủy entity khi tan hết. Không áp dụng cho reverse.

Mô tả chi tiết

Cho một sprite tan biến từng mảng nhỏ, có viền cháy sáng ở chỗ đang tan: kẻ địch chết, vật phẩm biến mất.

Đặt reverse thì ngược lại, sprite hiện ra dần.

Mỗi mảng có một số ngẫu nhiên cố định (từ hàm băm, không cần ảnh nhiễu); mảng nào có số nhỏ hơn ngưỡng đang chạy từ 0 đến 1 thì biến mất. Hình dáng sprite được giữ nguyên, chỉ bớt mảng. Module sprite cập nhật time theo delta() (nên dừng trong hitstop).

Khi hết giờ:

  • tan biến (mặc định): sprite ẩn hẳn và component ở lại, để nó không hiện lại. Đặt destroy_when_done để hủy luôn entity, hoặc tự gỡ component để sprite hiện lại;
  • reverse: component tự được gỡ và sprite hiện đủ.

Dùng chung được với njin::flash_fx: nháy trắng rồi tan biến. Dùng sprite_dissolve() cho gọn.