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
Thời gian

Thời gian của frame và thời gian đã chạy. Tiếp...

Các hàm

f32 njin::delta (const context &ctx)
 Thời gian của frame trước, tính bằng giây, đã nhân với tốc độ thời gian.
f32 njin::delta_real (const context &ctx)
 Thời gian thật của frame trước, không bị tốc độ thời gian hay tạm dừng ảnh hưởng.
void njin::time_set_scale (context &ctx, f32 scale)
 Đặt tốc độ thời gian của game.
f32 njin::time_scale (const context &ctx)
 Tốc độ thời gian hiện tại.
void njin::time_set_paused (context &ctx, bool paused)
 Tạm dừng hoặc chạy tiếp thời gian của game.
bool njin::time_paused (const context &ctx)
 Game có đang tạm dừng không.
f32 njin::fixed_delta (const context &ctx)
 Độ dài một nhịp của phase_fixed_update, bằng 1 / config::fixed_hz.
f32 njin::fixed_alpha (const context &ctx)
 Phần nhịp cố định còn dư sau phase_fixed_update của frame này, từ 0 đến 1.
f32 njin::elapsed (const context &ctx)
 Thời gian đã trôi qua kể từ lúc mở cửa sổ, tính bằng giây.

Mô tả chi tiết

Thời gian của frame và thời gian đã chạy.

Thông tin về hàm

◆ delta()

f32 njin::delta ( const context & ctx)

Thời gian của frame trước, tính bằng giây, đã nhân với tốc độ thời gian.

Nhân vận tốc với giá trị này để chuyển động không phụ thuộc FPS. Bằng 0 khi đang tạm dừng (time_set_paused()). Trong phase_fixed_update hàm này trả về đúng một nhịp cố định, xem fixed_delta().

Các tham số
ctxContext của engine.
Giá trị trả về
Thời gian của frame, tính bằng giây.

◆ delta_real()

f32 njin::delta_real ( const context & ctx)

Thời gian thật của frame trước, không bị tốc độ thời gian hay tạm dừng ảnh hưởng.

Dùng cho thứ vẫn phải chạy khi game dừng, như menu tạm dừng.

Các tham số
ctxContext của engine.
Giá trị trả về
Thời gian thật của frame, tính bằng giây.

◆ time_set_scale()

void njin::time_set_scale ( context & ctx,
f32 scale )

Đặt tốc độ thời gian của game.

1 là bình thường, 0.5 là chậm một nửa.

Ảnh hưởng delta(), phase_fixed_update và animation của sprite. Giá trị âm được coi là 0.

Các tham số
ctxContext của engine.
scaleTốc độ thời gian.

◆ time_scale()

f32 njin::time_scale ( const context & ctx)

Tốc độ thời gian hiện tại.

Các tham số
ctxContext của engine.
Giá trị trả về
Tốc độ thời gian, mặc định 1.

◆ time_set_paused()

void njin::time_set_paused ( context & ctx,
bool paused )

Tạm dừng hoặc chạy tiếp thời gian của game.

Khi dừng, delta() trả về 0 và phase_fixed_update không chạy, nhưng các phase khác vẫn chạy mỗi frame: input vẫn đọc được, menu vẫn vẽ được. Giữ nguyên tốc độ thời gian đã đặt.

Các tham số
ctxContext của engine.
pausedtrue để tạm dừng.

◆ time_paused()

bool njin::time_paused ( const context & ctx)

Game có đang tạm dừng không.

Các tham số
ctxContext của engine.
Giá trị trả về
true nếu đang tạm dừng.

◆ fixed_delta()

f32 njin::fixed_delta ( const context & ctx)

Độ dài một nhịp của phase_fixed_update, bằng 1 / config::fixed_hz.

Các tham số
ctxContext của engine.
Giá trị trả về
Độ dài một nhịp, tính bằng giây.

◆ fixed_alpha()

f32 njin::fixed_alpha ( const context & ctx)

Phần nhịp cố định còn dư sau phase_fixed_update của frame này, từ 0 đến 1.

Dùng để nội suy vị trí khi vẽ, cho chuyển động mượt dù FPS khác nhịp vật lý: draw_pos = lerp(prev_pos, pos, fixed_alpha(ctx)).

Các tham số
ctxContext của engine.
Giá trị trả về
Tỉ lệ từ 0 đến 1.

◆ elapsed()

f32 njin::elapsed ( const context & ctx)

Thời gian đã trôi qua kể từ lúc mở cửa sổ, tính bằng giây.

Các tham số
ctxContext của engine.
Giá trị trả về
Thời gian đã chạy, tính bằng giây.