优化雷声
This commit is contained in:
@@ -13,7 +13,7 @@ import { DEFAULT_SCENE_PARAMS } from './weatherPresets.js';
|
||||
import { OffshoreWindTurbineAsset } from './objects/OffshoreWindTurbineAsset.js';
|
||||
|
||||
const RAIN_AUDIO_URL = '/audio/rain-calming.mp3';
|
||||
const THUNDER_AUDIO_URL = '/audio/thunder-distant.mp3';
|
||||
const THUNDER_AUDIO_URL = '/audio/thunder-close.mp3';
|
||||
|
||||
export class OceanScene {
|
||||
constructor(container) {
|
||||
@@ -61,6 +61,7 @@ export class OceanScene {
|
||||
this.rainAudioCrossfadeDuration = 1.6;
|
||||
this.thunderAudioPool = [];
|
||||
this.thunderAudioIndex = 0;
|
||||
this.thunderVolume = DEFAULT_SCENE_PARAMS.thunderVolume;
|
||||
this.scheduledThunder = [];
|
||||
|
||||
this.params = { ...DEFAULT_SCENE_PARAMS };
|
||||
@@ -1802,6 +1803,12 @@ export class OceanScene {
|
||||
this.params.lightningIntensity = value;
|
||||
}
|
||||
|
||||
setThunderVolume(value) {
|
||||
const nextValue = THREE.MathUtils.clamp(value, 0, 1);
|
||||
this.params.thunderVolume = nextValue;
|
||||
this.thunderVolume = nextValue;
|
||||
}
|
||||
|
||||
applyParams(nextParams = {}) {
|
||||
const mergedParams = { ...DEFAULT_SCENE_PARAMS, ...nextParams };
|
||||
|
||||
@@ -1831,6 +1838,7 @@ export class OceanScene {
|
||||
this.setStarIntensity(mergedParams.starIntensity);
|
||||
this.setStarEnabled(mergedParams.starEnabled);
|
||||
this.setLightningIntensity(mergedParams.lightningIntensity);
|
||||
this.setThunderVolume(mergedParams.thunderVolume);
|
||||
this.setLightningEnabled(mergedParams.lightningEnabled);
|
||||
this.setRainEnabled(mergedParams.rainEnabled);
|
||||
}
|
||||
@@ -1904,7 +1912,7 @@ export class OceanScene {
|
||||
this.thunderAudioIndex += 1;
|
||||
audio.pause();
|
||||
audio.currentTime = 0;
|
||||
audio.volume = THREE.MathUtils.clamp(volume, 0, 1);
|
||||
audio.volume = THREE.MathUtils.clamp(volume * this.thunderVolume, 0, 1);
|
||||
audio.playbackRate = playbackRate;
|
||||
const playPromise = audio.play();
|
||||
if (playPromise?.catch) {
|
||||
|
||||
Reference in New Issue
Block a user