Skip to content
Snippets Groups Projects
Commit e3953af3 authored by william.ho's avatar william.ho
Browse files

setting_volum_connect_audio

parent 1b409ced
No related branches found
No related tags found
No related merge requests found
use bevy::{prelude::*}; use bevy::prelude::*;
use super::{despawn_screen, GameState}; use super::{despawn_screen, GameState, Volume};
pub struct AudioPlugin; pub struct AudioPlugin;
...@@ -8,31 +8,32 @@ impl Plugin for AudioPlugin { ...@@ -8,31 +8,32 @@ impl Plugin for AudioPlugin {
fn build(&self, app: &mut App) { fn build(&self, app: &mut App) {
app app
.add_systems(OnEnter(GameState::Victory), audio_win) .add_systems(OnEnter(GameState::Victory), audio_win)
.add_systems(OnExit(GameState::Victory), despawn_screen::<AudioMenu>) .add_systems(OnExit(GameState::Victory), despawn_screen::<Audio>)
.add_systems(OnEnter(GameState::GameOver), audio_defeat) .add_systems(OnEnter(GameState::GameOver), audio_defeat)
.add_systems(OnExit(GameState::GameOver), despawn_screen::<AudioMenu>) .add_systems(OnExit(GameState::GameOver), despawn_screen::<Audio>)
.add_systems(OnEnter(GameState::Menu), audio_menu) .add_systems(OnEnter(GameState::Menu), audio_menu)
.add_systems(OnExit(GameState::Menu), despawn_screen::<AudioMenu>) .add_systems(OnExit(GameState::Menu), despawn_screen::<Audio>)
.add_systems(OnEnter(GameState::Game), audio_game) .add_systems(OnEnter(GameState::Game), audio_game)
.add_systems(OnExit(GameState::Game), despawn_screen::<AudioMenu>) .add_systems(OnExit(GameState::Game), despawn_screen::<Audio>)
.add_systems(OnEnter(GameState::Fight), audio_fight) .add_systems(OnEnter(GameState::Fight), audio_fight)
.add_systems(OnExit(GameState::Fight), despawn_screen::<AudioMenu>); .add_systems(OnExit(GameState::Fight), despawn_screen::<Audio>)
.add_systems(Update, audio_volume);
} }
} }
#[derive(Component)] #[derive(Component)]
struct AudioMenu; struct Audio;
fn audio_win(mut commands: Commands, asset_server: Res<AssetServer>) { fn audio_win(mut commands: Commands, asset_server: Res<AssetServer>) {
commands commands
.spawn(( .spawn((
AudioBundle { AudioBundle {
source: asset_server.load("sound/victoire.ogg"), source: asset_server.load("sound/victoire.ogg"),
//connecter le volum avec le settings //connecter le volum avec le settings
..default() ..default()
}, },
AudioMenu, Audio,
)); ));
} }
...@@ -44,7 +45,7 @@ fn audio_defeat (mut commands: Commands, asset_server: Res<AssetServer>) { ...@@ -44,7 +45,7 @@ fn audio_defeat (mut commands: Commands, asset_server: Res<AssetServer>) {
//connecter le volum avec le settings //connecter le volum avec le settings
..default() ..default()
}, },
AudioMenu, Audio,
)); ));
} }
...@@ -56,7 +57,7 @@ fn audio_menu (mut commands: Commands, asset_server: Res<AssetServer>) { ...@@ -56,7 +57,7 @@ fn audio_menu (mut commands: Commands, asset_server: Res<AssetServer>) {
//connecter le volum avec le settings //connecter le volum avec le settings
..default() ..default()
}, },
AudioMenu, Audio,
)); ));
} }
...@@ -68,7 +69,7 @@ fn audio_game (mut commands: Commands, asset_server: Res<AssetServer>) { ...@@ -68,7 +69,7 @@ fn audio_game (mut commands: Commands, asset_server: Res<AssetServer>) {
//connecter le volum avec le settings //connecter le volum avec le settings
..default() ..default()
}, },
AudioMenu, Audio,
)); ));
} }
...@@ -80,6 +81,15 @@ fn audio_fight (mut commands: Commands, asset_server: Res<AssetServer>) { ...@@ -80,6 +81,15 @@ fn audio_fight (mut commands: Commands, asset_server: Res<AssetServer>) {
//connecter le volum avec le settings //connecter le volum avec le settings
..default() ..default()
}, },
AudioMenu, Audio,
)); ));
}
fn audio_volume(volume_audio: Res<Volume>,
mut audio: Query<&AudioSink, With<Audio>>,
) {
let new_volume: f32 = volume_audio.0 as f32;
for entity in &audio {
entity.set_volume(new_volume);
}
} }
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment