1
0

AudioManager.gml 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. function bgm_play(_key)
  2. {
  3. if !global.audio_enabled
  4. return;
  5. var _mus = oAudioManager.bgm_map[$ _key];
  6. if _mus == undefined exit;
  7. if audio_is_playing(oAudioManager.bgm_current)
  8. audio_sound_gain(oAudioManager.bgm_current, 0, 1000);
  9. oAudioManager.bgm_next = _mus;
  10. oAudioManager.bgm_fade_timer = 60;
  11. }
  12. function bgm_stop()
  13. {
  14. if !global.audio_enabled
  15. return;
  16. audio_stop_sound(oAudioManager.bgm_current);
  17. oAudioManager.bgm_current = noone;
  18. }
  19. function sfx_play(_key, _pitch_vary = 0.1, _vol_vary = 0.1)
  20. {
  21. if !global.audio_enabled
  22. return;
  23. var _sfx = oAudioManager.sfx_map[$ _key];
  24. var _inst = audio_play_sound(_sfx, 1, false);
  25. var _pitch = 1.0 + (random(_pitch_vary * 2) - _pitch_vary);
  26. var _vol = oAudioManager.sfx_volume * (1.0 - random(_vol_vary));
  27. audio_sound_pitch(_inst, _pitch);
  28. audio_sound_gain(_inst, _vol, 0);
  29. return _inst;
  30. }
  31. function sfx_heartbeat_play()
  32. {
  33. if !global.audio_enabled
  34. return;
  35. var _threshold = 2;
  36. if global.playerHP <= _threshold
  37. {
  38. var _vol = 1// - (global.playerHP / _threshold) * 0.5;
  39. audio_sound_gain(heartbeat_sound, _vol, 100);
  40. var _bgm_vol = oAudioManager.bgm_volume * (1 - _vol * 0.7);
  41. audio_sound_gain(oAudioManager.bgm_current, _bgm_vol, 100);
  42. }
  43. else
  44. {
  45. audio_sound_gain(heartbeat_sound, 0, 200);
  46. audio_sound_gain(oAudioManager.bgm_current, oAudioManager.bgm_volume, 200); // 恢复
  47. }
  48. }