very basic sfx

main
Elijah Voigt 3 months ago
parent c2d1999491
commit a2367fb4f7

BIN
assets/flappy/bonk.ogg (Stored with Git LFS)

Binary file not shown.

BIN
assets/flappy/flap.ogg (Stored with Git LFS)

Binary file not shown.

BIN
assets/flappy/rewind-start.ogg (Stored with Git LFS)

Binary file not shown.

@ -1,6 +1,7 @@
// Bevy basically forces "complex types" with Querys
#![allow(clippy::type_complexity)]
use bevy::audio::PlaybackMode;
use bevy::render::view::ColorGrading;
use games::physics2d::*;
use games::*;
@ -38,7 +39,7 @@ fn main() {
),
)
.add_systems(OnEnter(PlayerState::Alive), alive_bird)
.add_systems(OnEnter(PlayerState::Rewind), alive_bird)
.add_systems(OnEnter(PlayerState::Rewind), (start_rewinding, alive_bird))
.add_systems(OnEnter(PlayerState::Pause), pause_bird)
.add_systems(OnEnter(PlayerState::Stasis), pause_bird)
.add_systems(
@ -403,6 +404,15 @@ fn init_assets(
bird_assets.mesh = Mesh2d(meshes.add(Rectangle::new(1.0, 1.2)));
}
#[derive(Component)]
struct FlapSfx;
#[derive(Component)]
struct BonkSfx;
#[derive(Component)]
struct RewindSfx;
fn init_ui(mut commands: Commands) {
commands
.spawn((
@ -598,6 +608,8 @@ fn flap(
trigger: Trigger<Flap>,
mut bird: Query<&mut ExternalImpulse, With<Bird>>,
mut flaps: ResMut<Flaps>,
server: ResMut<AssetServer>,
mut commands: Commands,
) {
debug!("real flap for {:?}", trigger.target());
// Increment flap stat
@ -606,6 +618,13 @@ fn flap(
// Flap birds wings
if let Ok(mut f) = bird.get_mut(trigger.target()) {
f.apply_impulse(Vec2::Y * 5000.0 + Vec2::X * 1000.0);
// Play flap sfx
commands.spawn((
AudioPlayer::new(server.load("flappy/bonk.ogg")),
PlaybackSettings { mode: PlaybackMode::Despawn, ..default() },
BonkSfx,
));
}
}
@ -746,6 +765,8 @@ fn detect_dead(
bird: Single<&ColliderAabb, With<Bird>>,
obstacles: Query<&ColliderAabb, Or<(With<Ground>, With<Pipe>, With<Ceiling>)>>,
mut next: ResMut<NextState<PlayerState>>,
server: ResMut<AssetServer>,
mut commands: Commands,
) {
#[cfg(debug_assertions)]
debug_assert!(
@ -755,6 +776,13 @@ fn detect_dead(
if obstacles.iter().any(|obstacle| bird.intersects(obstacle)) {
next.set(PlayerState::Stasis);
// Play bonk sfx
commands.spawn((
AudioPlayer::new(server.load("flappy/flap.ogg")),
PlaybackSettings { mode: PlaybackMode::Despawn, ..default() },
FlapSfx,
));
}
}
@ -955,3 +983,14 @@ fn debug_trail(
});
})
}
fn start_rewinding(
server: ResMut<AssetServer>,
mut commands: Commands,
) {
commands.spawn((
AudioPlayer::new(server.load("flappy/rewind-start.ogg")),
PlaybackSettings { mode: PlaybackMode::Despawn, ..default() },
RewindSfx,
));
}

Loading…
Cancel
Save