Add climbing SFX

main
En Yi 2025-07-29 21:45:59 +08:00
parent acc299c612
commit f35320cfe6
5 changed files with 9 additions and 1 deletions

View File

@ -44,6 +44,7 @@ int main(int argc, char** argv)
load_sfx(&engine, "snd_step", PLAYER_STEP_SFX);
load_sfx(&engine, "snd_dead", PLAYER_DEAD_SFX);
load_sfx(&engine, "snd_drwg", PLAYER_DROWNING_SFX);
load_sfx(&engine, "snd_climb", PLAYER_CLIMB_SFX);
load_sfx(&engine, "snd_mdestroy", METAL_DESTROY_SFX);
load_sfx(&engine, "snd_wdestroy", WOOD_DESTROY_SFX);
load_sfx(&engine, "snd_cland", WOOD_LAND_SFX);

2
main.c
View File

@ -52,6 +52,7 @@ int main(void)
load_sfx(&engine, "snd_step", PLAYER_STEP_SFX);
load_sfx(&engine, "snd_dead", PLAYER_DEAD_SFX);
load_sfx(&engine, "snd_drwg", PLAYER_DROWNING_SFX);
load_sfx(&engine, "snd_climb", PLAYER_CLIMB_SFX);
load_sfx(&engine, "snd_arrhit", ARROW_DESTROY_SFX);
load_sfx(&engine, "snd_launch", ARROW_RELEASE_SFX);
load_sfx(&engine, "snd_launch", BOMB_RELEASE_SFX);
@ -113,7 +114,6 @@ int main(void)
float delta_time = fminf(frame_time, DT);
update_scene(curr_scene, delta_time);
update_entity_manager(&curr_scene->ent_manager);
// This is needed to advance time delta
render_scene(curr_scene);
update_sfx_list(&engine);

View File

@ -68,6 +68,7 @@ int main(void)
load_sfx(&engine, "snd_step", PLAYER_STEP_SFX);
load_sfx(&engine, "snd_dead", PLAYER_DEAD_SFX);
load_sfx(&engine, "snd_drwg", PLAYER_DROWNING_SFX);
load_sfx(&engine, "snd_climb", PLAYER_CLIMB_SFX);
load_sfx(&engine, "snd_arrhit", ARROW_DESTROY_SFX);
load_sfx(&engine, "snd_launch", ARROW_RELEASE_SFX);
load_sfx(&engine, "snd_launch", BOMB_RELEASE_SFX);

View File

@ -23,6 +23,7 @@ typedef enum SFXTag {
PLAYER_STEP_SFX,
PLAYER_DEAD_SFX,
PLAYER_DROWNING_SFX,
PLAYER_CLIMB_SFX,
WATER_IN_SFX,
WATER_OUT_SFX,
WOOD_LAND_SFX,

View File

@ -80,6 +80,11 @@ static void player_sfx_func(GameEngine_t* engine, Entity_t* ent) {
play_sfx(engine, PLAYER_STEP_SFX);
}
}
CTransform_t* p_ct = get_component(ent, CTRANSFORM_COMP_T);
if (p_spr->current_idx == SPR_PLAYER_LADDER && Vector2LengthSqr(p_ct->velocity) > 0.1) {
play_sfx_pitched(engine, PLAYER_CLIMB_SFX, p_spr->current_frame % 2 == 0 ? 1.0f : 0.75f );
}
}
Entity_t* create_player(EntityManager_t* ent_manager)