Very simple audio

selection-refactor
Elijah Voigt 2 years ago
parent 293f27aba9
commit 14307a710b

@ -5,5 +5,5 @@ edition = "2021"
build = "build.rs" build = "build.rs"
[dependencies] [dependencies]
bevy_fmod = "0.3" bevy_fmod = { version = "0.3", features = ["live-update"] }
bevy = "0.11" bevy = "0.11"

@ -1,3 +1,6 @@
///
/// TODO: Custom Asset: FmodEventMapper
///
use crate::prelude::*; use crate::prelude::*;
pub(crate) struct AudioPlugin; pub(crate) struct AudioPlugin;
@ -11,6 +14,39 @@ impl Plugin for AudioPlugin {
"./assets/audio/Martian Chess/Build/Desktop/Music.bank", "./assets/audio/Martian Chess/Build/Desktop/Music.bank",
"./assets/audio/Martian Chess/Build/Desktop/SFX.bank", "./assets/audio/Martian Chess/Build/Desktop/SFX.bank",
], ],
}); })
.add_systems(OnExit(GameState::Loading), play_background)
.add_systems(
Update,
(
play_audio.run_if(any_with_component::<Button>()),
button_audio.run_if(any_with_component::<Button>()),
),
);
}
}
fn play_background(studio: Res<FmodStudio>, mut commands: Commands) {
commands.spawn(AudioSource::new(
studio.0.get_event("event:/Music").unwrap(),
));
} }
fn play_audio(mut events: Query<&AudioSource, Added<AudioSource>>) {
events.iter_mut().for_each(|aud| aud.play());
}
fn button_audio(
events: Query<&Interaction, (Changed<Interaction>, With<Button>)>,
studio: Res<FmodStudio>,
mut commands: Commands,
) {
events
.iter()
.filter(|&interaction| *interaction != Interaction::None)
.for_each(|_| {
commands.spawn(AudioSource::new(
studio.0.get_event("event:/SFX/MenuSelect").unwrap(),
));
});
} }

@ -1,3 +1,7 @@
///
/// TODO: Custom Asset: SpriteSheetAtlas Mapper
/// TODO: Handle Cursor!
///
use crate::{ use crate::{
game::{Board, BoardIndex, Piece, SelectedTile}, game::{Board, BoardIndex, Piece, SelectedTile},
prelude::*, prelude::*,

Loading…
Cancel
Save