Física & Áudio
Integre simulação de física e áudio em Bevy - colliders, corpos rígidos e gatilhos de som.
Busque em todas as páginas da documentação
Integre simulação de física e áudio em Bevy - colliders, corpos rígidos e gatilhos de som.
// Física (estilo conceitual Avian/Rapier):
// commands.spawn((
// RigidBody::Dynamic,
// Collider::sphere(0.5),
// Transform::default(),
// ));
// Áudio:
fn play_jump(asset_server: Res<AssetServer>, mut commands: Commands) {
commands.spawn((
AudioPlayer::new(asset_server.load("audio/jump.ogg")),
PlaybackSettings::DESPAWN,
));
}Quando usar isso:
Áudio baseado em eventos ao pular:
use bevy::prelude::*;
#[derive(Event)]
struct JumpEvent;
fn play_jump_sfx(
mut events: EventReader<JumpEvent>,
asset_server: Res<AssetServer>,
mut commands: Commands,
) {
for _ in events.read() {
commands.spawn((
AudioPlayer::new(asset_server.load("audio/jump.ogg")),
PlaybackSettings::DESPAWN,
));
}
}O que isso demonstra:
assets/audio/FixedUpdate.AudioPlayer inicia a reprodução ao ser gerado.| Sistema | Schedule |
|---|---|
| Passo da Física | FixedUpdate |
| Spawn de SFX | Update em eventos |
| Loop de Música | Entidade persistente com PlaybackSettings::LOOP |
Update variável - tunneling em alta velocidade. Correção: integre apenas em FixedUpdate.AudioListener à câmera ativa.| Alternativa | Usar Quando | Não Usar Quando |
|---|---|---|
| Colisão AABB customizada | Jogo de tiles simples | Muitos corpos dinâmicos |
| FMOD/Wwise via FFI | Ferramentas de áudio AAA | Escopo indie pequeno |
| Colisão manual em grade 2D | Movimento em grade retrô | Realismo físico necessário |
| Sem áudio | Protótipo silencioso | Lançar para jogadores |
avian (ecossistema Bevy 0.14+) ou bevy_rapier3d/2d - escolha um por projeto e fixe a versão na release do Bevy.
Cinemático para controle do jogador que empurra física; dinâmico para caixas e ragdolls.
Grupos/máscaras de colisão filtram o que interage - defina na configuração do plugin para reduzir o trabalho.
Duas entidades AudioPlayer; ajuste volumes em 1-2 segundos na mudança de estado.
Recurso de volume global ou pausar todos os players quando GameState::Paused.
Eventos CollisionStarted/Ended do plugin mapeados para sons de dano ou passos.
Timestep fixo ajuda; determinismo de rede completo requer ponto fixo e ordenação controlada.
Corpos adormecidos, colliders simplificados, ajuste de broadphase - veja a página de performance.
Game Loops & Timing para a fiação do FixedUpdate.
Assets & Scenes para organização de arquivos de áudio.
Versões da Stack: Esta página foi escrita para Rust 1.97.0 (edição 2024), Tokio 1.x, Axum 0.8, serde 1.0, sqlx 0.8, clap 4, e Polars 0.46+.
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026