Add asteroid destruction sound
This commit is contained in:
BIN
assets/explosionCrunch_000.ogg
Normal file
BIN
assets/explosionCrunch_000.ogg
Normal file
Binary file not shown.
@@ -115,6 +115,7 @@ pub fn split_asteroids(
|
|||||||
mut respawn_events: MessageWriter<SpawnAsteroid>,
|
mut respawn_events: MessageWriter<SpawnAsteroid>,
|
||||||
mut commands: Commands,
|
mut commands: Commands,
|
||||||
query: Query<(&Transform, &Asteroid, &Velocity)>,
|
query: Query<(&Transform, &Asteroid, &Velocity)>,
|
||||||
|
game_assets: Res<GameAssets>,
|
||||||
) {
|
) {
|
||||||
for event in destroy_events.read() {
|
for event in destroy_events.read() {
|
||||||
if let Ok((transform, rock, velocity)) = query.get(event.0) {
|
if let Ok((transform, rock, velocity)) = query.get(event.0) {
|
||||||
@@ -137,6 +138,12 @@ pub fn split_asteroids(
|
|||||||
// Always despawn the asteroid. New ones (may) be spawned in it's
|
// Always despawn the asteroid. New ones (may) be spawned in it's
|
||||||
// place, but this one is gone.
|
// place, but this one is gone.
|
||||||
commands.entity(event.0).despawn();
|
commands.entity(event.0).despawn();
|
||||||
|
|
||||||
|
// Play a sound for the asteroid exploding
|
||||||
|
commands.spawn((
|
||||||
|
AudioPlayer::new(game_assets.asteroid_crack_sound()),
|
||||||
|
PlaybackSettings::DESPAWN,
|
||||||
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ impl Default for WorldSize {
|
|||||||
pub struct GameAssets {
|
pub struct GameAssets {
|
||||||
meshes: [Handle<Mesh>; 5],
|
meshes: [Handle<Mesh>; 5],
|
||||||
materials: [Handle<ColorMaterial>; 7],
|
materials: [Handle<ColorMaterial>; 7],
|
||||||
sounds: [Handle<AudioSource>; 2],
|
sounds: [Handle<AudioSource>; 3],
|
||||||
}
|
}
|
||||||
|
|
||||||
impl GameAssets {
|
impl GameAssets {
|
||||||
@@ -105,6 +105,10 @@ impl GameAssets {
|
|||||||
pub fn laser_sound(&self) -> Handle<AudioSource> {
|
pub fn laser_sound(&self) -> Handle<AudioSource> {
|
||||||
self.sounds[1].clone()
|
self.sounds[1].clone()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn asteroid_crack_sound(&self) -> Handle<AudioSource> {
|
||||||
|
self.sounds[2].clone()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl FromWorld for GameAssets {
|
impl FromWorld for GameAssets {
|
||||||
@@ -135,7 +139,8 @@ impl FromWorld for GameAssets {
|
|||||||
let loader = world.resource_mut::<AssetServer>();
|
let loader = world.resource_mut::<AssetServer>();
|
||||||
let sounds = [
|
let sounds = [
|
||||||
loader.load("explosionCrunch_004.ogg"),
|
loader.load("explosionCrunch_004.ogg"),
|
||||||
loader.load("laserSmall_001.ogg")
|
loader.load("laserSmall_001.ogg"),
|
||||||
|
loader.load("explosionCrunch_000.ogg"),
|
||||||
];
|
];
|
||||||
GameAssets {
|
GameAssets {
|
||||||
meshes,
|
meshes,
|
||||||
|
|||||||
Reference in New Issue
Block a user