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
Particle

Nguồn phát hạt: nổ, bụi, tia lửa, khói, lửa. Tiếp...

Classes

struct  njin::f32_range
 Khoảng giá trị. Tiếp...
struct  njin::particle
 Một hạt đang sống. Do engine tạo và cập nhật; game chỉ cần đọc nếu muốn. Tiếp...
struct  njin::particle_emitter
 Nguồn phát hạt: nổ, bụi, tia lửa, khói. Tiếp...

Enumerations

enum  njin::particle_shape { njin::particle_circle , njin::particle_square }
 Hình của hạt khi không có texture. Tiếp...
enum  njin::particle_backend { njin::particle_backend_auto , njin::particle_backend_cpu }
 Nơi mô phỏng và vẽ hạt. Tiếp...

Các hàm

void njin::particles_set_backend (context &ctx, particle_backend backend)
 Chọn nơi mô phỏng hạt.
particle_backend njin::particles_backend (const context &ctx)
 Lựa chọn đang đặt bằng particles_set_backend().
bool njin::particles_gpu_available (context &ctx)
 Máy này có chạy được hạt trên GPU không: OpenGL 3.3 trở lên, có instancing, và không phải bộ vẽ bằng phần mềm (llvmpipe, SwiftShader, Microsoft Basic Render Driver, ...).
void njin::particles_burst (particle_emitter &emitter, i32 count)
 Xếp hàng count hạt để sinh cùng lúc ở lần cập nhật tới.
entt::entity njin::particles_spawn (context &ctx, const particle_emitter &preset, vec2 pos, i32 count)
 Tạo một entity tại pos chỉ để phát một loạt count hạt, theo mẫu preset, rồi tự hủy khi hạt cuối cùng chết.

Mô tả chi tiết

Nguồn phát hạt: nổ, bụi, tia lửa, khói, lửa.

Thông tin về Enumeration Type

◆ particle_shape

Hình của hạt khi không có texture.

Enumerator
particle_circle 

Hình tròn, size là đường kính.

particle_square 

Hình vuông, xoay theo spin.

◆ particle_backend

Nơi mô phỏng và vẽ hạt.

Enumerator
particle_backend_auto 

Máy có GPU (OpenGL 3.3 trở lên, không phải bộ vẽ bằng phần mềm) thì mọi emitter chạy trên GPU; máy không có thì chạy trên CPU.

particle_backend_cpu 

Mọi emitter chạy trên CPU, dù máy có GPU.

Thông tin về hàm

◆ particles_set_backend()

void njin::particles_set_backend ( context & ctx,
particle_backend backend )

Chọn nơi mô phỏng hạt.

Mặc định là particle_backend_auto.

Mỗi emitter chỉ đổi nơi chạy khi nó không còn hạt nào, nên đổi giữa chừng không làm hạt đang bay bị giật.

Các tham số
ctxContext của engine.
backendLựa chọn.

◆ particles_backend()

particle_backend njin::particles_backend ( const context & ctx)

Lựa chọn đang đặt bằng particles_set_backend().

Các tham số
ctxContext của engine.
Giá trị trả về
Lựa chọn hiện tại.

◆ particles_gpu_available()

bool njin::particles_gpu_available ( context & ctx)

Máy này có chạy được hạt trên GPU không: OpenGL 3.3 trở lên, có instancing, và không phải bộ vẽ bằng phần mềm (llvmpipe, SwiftShader, Microsoft Basic Render Driver, ...).

Chỉ đúng sau khi cửa sổ đã mở, tức là trong mọi hàm của game.

Các tham số
ctxContext của engine.
Giá trị trả về
true nếu GPU dùng được.

◆ particles_burst()

void njin::particles_burst ( particle_emitter & emitter,
i32 count )
inline

Xếp hàng count hạt để sinh cùng lúc ở lần cập nhật tới.

Không cần emitting. Gọi nhiều lần trong một frame thì cộng dồn.

Các tham số
emitterEmitter.
countSố hạt.

◆ particles_spawn()

entt::entity njin::particles_spawn ( context & ctx,
const particle_emitter & preset,
vec2 pos,
i32 count )

Tạo một entity tại pos chỉ để phát một loạt count hạt, theo mẫu preset, rồi tự hủy khi hạt cuối cùng chết.

preset thường là một hằng số của game, ví dụ explosion. Entity mới được gắn vào scene đang chạy (njin::scene_owned), nên rời scene thì nó cũng mất.

Các tham số
ctxContext của engine.
presetMẫu emitter. emitting và destroy_when_done bị ghi đè.
posVị trí trong thế giới.
countSố hạt.
Giá trị trả về
Entity vừa tạo.