3#include <entt/entity/fwd.hpp>
void music_play(context &ctx, music_handle handle)
Phát từ đầu, kể cả khi đang tạm dừng hoặc đang phát.
bool music_playing(context &ctx, music_handle handle)
Music có đang phát không (không tính lúc tạm dừng).
void music_stop(context &ctx, music_handle handle)
Dừng và đưa vị trí về đầu bài.
void music_resume(context &ctx, music_handle handle)
Phát tiếp từ chỗ music_pause() đã dừng.
void music_unload(context &ctx, music_handle handle)
Giải phóng music.
music_handle music_load(context &ctx, const char *path)
Nạp một bản nhạc để stream từ đĩa.
void music_crossfade(context &ctx, music_handle handle, f32 seconds)
Chuyển nhạc: mọi music khác đang phát nhỏ dần rồi dừng, trong lúc handle to dần.
void music_set_volume(context &ctx, music_handle handle, f32 volume)
Đặt âm lượng của music, từ 0 trở lên (1 là âm lượng gốc).
void music_set_muted(context &ctx, music_handle handle, bool muted)
Tắt hoặc bật tiếng music, không đụng đến âm lượng đã lưu.
void music_pause(context &ctx, music_handle handle)
Tạm dừng nhưng giữ nguyên vị trí.
void music_fade_in(context &ctx, music_handle handle, f32 seconds)
Phát từ đầu, to dần từ im lặng trong seconds giây.
void music_set_looping(context &ctx, music_handle handle, bool looping)
Bật hoặc tắt chế độ lặp.
void music_fade_out(context &ctx, music_handle handle, f32 seconds)
Nhỏ dần rồi dừng.
void voice3d_set_desc(context &ctx, voice3d_handle voice, const sound3d_desc &desc)
Đổi cách nghe của tiếng đang phát: âm lượng theo ga của xe, cao độ theo vòng tua máy (vehicle3d_rpm()...
void voice3d_set_position(context &ctx, voice3d_handle voice, vec3 position)
Dời tiếng tới position, và thôi đi theo entity nếu đang đi theo.
audio_rolloff
Cách âm lượng giảm theo khoảng cách, từ min_distance (đủ to) đến max_distance (im).
Definition njin_audio.h:293
void voice3d_stop(context &ctx, voice3d_handle voice)
Dừng tiếng.
void audio_set_speed_of_sound(context &ctx, f32 units_per_second)
Tốc độ âm thanh, đơn vị thế giới mỗi giây, cho hiệu ứng Doppler.
bool voice3d_playing(const context &ctx, voice3d_handle voice)
Tiếng còn đang phát không (tiếng lặp thì cho đến khi dừng).
void voice3d_set_velocity(context &ctx, voice3d_handle voice, vec3 velocity)
Đặt vận tốc của nguồn cho Doppler.
void audio_set_listener3d(context &ctx, const audio_listener3d &listener)
Đặt tai nghe bằng tay.
voice3d_mix voice3d_state(const context &ctx, voice3d_handle voice)
Âm lượng, trái phải và cao độ của tiếng ở lần cập nhật gần nhất.
void voice3d_attach(context &ctx, voice3d_handle voice, entt::entity entity, vec3 offset={})
Cho tiếng đi theo entity, lệch offset so với vị trí của nó (trong thế giới, không xoay theo entity).
sound3d_desc voice3d_desc(const context &ctx, voice3d_handle voice)
Cách nghe đang dùng của tiếng.
voice3d_handle sound_loop3d(context &ctx, sound_handle handle, vec3 position, const sound3d_desc &desc={})
Phát lặp handle tại position cho đến khi voice3d_stop() (hoặc sound_stop() cho sound đó): tiếng máy n...
void audio_listener3d_follow_camera(context &ctx, bool follow=true)
Cho tai nghe đi theo camera của begin_3d() (mặc định), hoặc thôi đi theo và đứng yên ở chỗ hiện tại.
voice3d_handle sound_play3d(context &ctx, sound_handle handle, vec3 position, const sound3d_desc &desc={})
Phát một lần handle tại position, nghe từ tai nghe 3D theo desc.
audio_listener3d audio_listener3d_get(const context &ctx)
Tai nghe đang dùng, kể cả khi nó đi theo camera.
@ rolloff_inverse
Giảm theo 1/khoảng cách, như ngoài đời: nhanh lúc gần, chậm lúc xa.
Definition njin_audio.h:296
@ rolloff_exponential
Giảm theo lũy thừa của khoảng cách, (d / min_distance)^-rolloff_factor: tắt nhanh hơn inverse.
Definition njin_audio.h:302
@ rolloff_linear
Giảm đều từ 1 ở min_distance đến 0 ở max_distance.
Definition njin_audio.h:299
void sound_play_once(context &ctx, sound_handle handle)
Phát sound mà không cắt các bản đang phát.
void sound_play_once_at(context &ctx, sound_handle handle, f32 pitch, f32 gain)
Giống sound_play_once() nhưng chỉnh cao độ và độ lớn cho riêng bản này.
sound_handle sound_load(context &ctx, const char *path)
Nạp một âm thanh ngắn vào bộ nhớ.
void sound_play_at(context &ctx, sound_handle handle, vec2 world_pos)
Phát sound như sound_play_once(), kèm vị trí trong thế giới.
void sound_set_bus(context &ctx, sound_handle handle, audio_bus bus)
Đưa một sound vào kênh khác, ví dụ bus_ui cho tiếng nhấp menu.
sound_handle sound_load_samples(context &ctx, const f32 *samples, i32 count, i32 sample_rate)
Tạo một âm thanh từ các mẫu đã có trong bộ nhớ.
void sound_unload(context &ctx, sound_handle handle)
Giải phóng sound.
void sound_play_restart(context &ctx, sound_handle handle)
Cắt mọi bản đang phát rồi phát lại từ đầu, nên lúc nào cũng chỉ nghe một bản.
void sound_set_muted(context &ctx, sound_handle handle, bool muted)
Tắt hoặc bật tiếng sound.
audio_bus
Kênh trộn âm thanh, như thanh trượt trong menu cài đặt của game.
Definition njin_audio.h:17
void audio_set_bus_muted(context &ctx, audio_bus bus, bool muted)
Tắt hoặc bật tiếng cả một kênh, không đụng đến âm lượng đã đặt.
void sound_set_volume(context &ctx, sound_handle handle, f32 volume)
Đặt âm lượng của sound, từ 0 trở lên (1 là âm lượng gốc).
bool audio_bus_muted(const context &ctx, audio_bus bus)
Kênh có đang tắt tiếng không.
void audio_set_bus_volume(context &ctx, audio_bus bus, f32 volume)
Đặt âm lượng một kênh, từ 0 trở lên (1 là nguyên).
void sound_play_loop(context &ctx, sound_handle handle)
Đánh dấu sound là lặp lại và phát nếu nó chưa phát.
void sound_stop(context &ctx, sound_handle handle)
Dừng mọi bản đang phát của sound và bỏ chế độ lặp.
void audio_set_range(context &ctx, f32 full_until, f32 silent_from)
Khoảng cách nghe được của sound_play_at().
f32 audio_bus_volume(const context &ctx, audio_bus bus)
Âm lượng một kênh.
@ bus_voice
Lồng tiếng, tiếng thoại.
Definition njin_audio.h:22
@ bus_master
Tổng: nhân vào mọi thứ.
Definition njin_audio.h:18
@ bus_music
Nhạc nền (mọi music).
Definition njin_audio.h:19
@ audio_bus_count
Số kênh. Không phải một kênh thật.
Definition njin_audio.h:23
@ bus_sfx
Hiệu ứng trong game. Mặc định của sound.
Definition njin_audio.h:20
@ bus_ui
Tiếng giao diện.
Definition njin_audio.h:21
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
Tai nghe của thế giới 3D: mọi tiếng 3D được nghe từ đây.
Definition njin_audio.h:261
vec3 velocity
Vận tốc, đơn vị mỗi giây, cho hiệu ứng Doppler.
Definition njin_audio.h:265
vec3 forward
Hướng nhìn. Không cần độ dài 1.
Definition njin_audio.h:263
vec3 up
Hướng lên. Không cần độ dài 1.
Definition njin_audio.h:264
vec3 position
Vị trí tai.
Definition njin_audio.h:262
Định danh của một bản nhạc stream (music), tạo bởi music_load().
Definition _types.h:123
Cách nghe một tiếng 3D.
Definition njin_audio.h:307
f32 max_distance
Xa hơn thì im (và không tốn gì để trộn).
Definition njin_audio.h:311
f32 rolloff_factor
Độ dốc của rolloff_inverse và rolloff_exponential.
Definition njin_audio.h:315
f32 pitch
Cao độ trước Doppler. 1 là như bản ghi.
Definition njin_audio.h:309
f32 cone_outer_volume
Hệ số âm lượng ngoài cone_outer, 0..1.
Definition njin_audio.h:328
f32 occlusion_volume
Hệ số âm lượng khi bị che, 0..1.
Definition njin_audio.h:334
f32 cone_outer
Góc toàn phần (độ) mà ngoài nó chỉ còn cone_outer_volume.
Definition njin_audio.h:327
f32 cone_inner
Góc toàn phần (độ) của vùng nghe đủ to, quanh cone_direction.
Definition njin_audio.h:326
f32 occlusion_margin
Chỗ chạm cách nguồn trong khoảng này thì không tính là che: body của chính vật phát tiếng (thân xe đa...
Definition njin_audio.h:337
f32 spread
Độ lệch trái phải, 0..1.
Definition njin_audio.h:319
bool occlusion
Bị che: mỗi frame bắn một tia vật lý (physics3d_raycast()) từ tai tới nguồn; chạm một body ở trước ng...
Definition njin_audio.h:333
f32 volume
Nhân vào âm lượng của sound (và kênh của nó). Âm thì là 0.
Definition njin_audio.h:308
vec3 cone_direction
Hướng phát của một loa có hướng (còi xe, loa phóng thanh), trong thế giới.
Definition njin_audio.h:325
audio_rolloff rolloff
Cách giảm theo khoảng cách.
Definition njin_audio.h:312
f32 min_distance
Gần hơn thì nghe đủ to.
Definition njin_audio.h:310
f32 doppler
Độ mạnh của Doppler: tiếng cao lên khi nguồn và tai lại gần nhau, trầm xuống khi xa nhau.
Definition njin_audio.h:322
Định danh của một âm thanh ngắn (sound), tạo bởi sound_load().
Definition _types.h:116
Vector 2 chiều. Dùng cho vị trí, kích thước, độ dời.
Definition _types.h:39
Vector 3 chiều.
Definition _types.h:47
Định danh của một tiếng đang phát trong không gian 3D, tạo bởi sound_play3d() hoặc sound_loop3d().
Definition _types.h:270
Những gì engine tính được cho một tiếng 3D ở lần cập nhật gần nhất, để debug hoặc để vẽ chỉ báo tiếng...
Definition njin_audio.h:431
f32 volume
Âm lượng đang phát, đã nhân sound, kênh, khoảng cách, nón và vật che.
Definition njin_audio.h:432
f32 pan
Trái phải, -1 (trái) .. 1 (phải).
Definition njin_audio.h:433
f32 pitch
Cao độ đang phát, đã nhân Doppler.
Definition njin_audio.h:434
f32 distance
Khoảng cách tới tai.
Definition njin_audio.h:435
bool occluded
Tia từ tai tới nguồn có bị chặn không.
Definition njin_audio.h:436