[XNA] - Colocando sons em seu game.
Autor: Jogos e Mais Jogos | Publicado: 2011-12-03T06:21:00-08:00

Colegas&nbsp;gamers&nbsp;e desenvolvedores&nbsp;indie!Neste artigo vamos estudar um ponto que muitas vezes é esquecido quando estamos começando a escrever nossos próprios jogos, mas que é essencial para a criação de um jogo bem polido: os sons, incluindo aqui música de fundo e efeitos sonoros.Para permitir que os mesmos sons sejam utilizados tanto no Windows quanto no Xbox 360, o XNA utiliza a ferramenta XACT, que você encontra no menu&nbsp;Iniciar / Programas / Microsoft XNA Game Studio 2.0/ Tools / Cross-Platform Audio Creation Tool (XACT).Para incluir sons em seu jogo, basta seguir os três passos a seguir:Passo 1 - Criando o projeto de som no XACT:&nbsp;Um projeto XACT é composto por arquivos com a extensão WAV (não, nada de MP3 por aqui! L), armazenados em um “Wave Bank”, e os sons que efetivamente serão usados no jogo em um “Sound Bank”. Para criar um projeto, execute o XACT e na lista que aparece à esquerda clique com o botão da direita sobre o item “Wave Banks”, selecionando a opção “New Wave Bank”. Faça o mesmo para criar um “Sound Bank” no projeto. A seguir, arraste os arquivos .WAV de seu Windows e solte-os sobre a janela do “Wave Bank”, selecionando-os a seguir nesta janela e arrastando-os até a janela do “Sound Bank” para criar os sons associados aos arquivos WAV. Clique nos elementos das janelas do XACT e verifique que propriedades você pode configurar para cada som – só isso já é material para todo um livro! Por exemplo, é possível indicar que um som fica em loop infinito para usá-lo como música de fundo. Salve seu projeto e passe para o passo 2!Passo 2 - Incluir o projeto XACT no jogo: Para isso, basta clicar com o botão da direita no diretório “Content” de seu jogo e selecionar a opção “Add existing item”, escolhendo na janela de diálogo que aparece o projeto XACT salvo no passo anterior.Passo 3 – Tocando sons: Precisamos inicializar os objetos de gerenciamento de som do XNA para podermos tocar sons em nossos jogos. Isso efeito com uma “receita de bolo”, que será sempre igual para todos seus projetos: criar as variáveis adequadas e inicializá-las no?
      123456789      AudioEngine audioEngine;WaveBank waveBank;SoundBank soundBank;protected override void Initialize(){&nbsp;&nbsp;&nbsp;audioEngine = new AudioEngine(@"Content\MySounds.xgs");&nbsp;&nbsp;&nbsp;waveBank = new WaveBank(audioEngine, @"Content\Wave   Bank.xwb");&nbsp;&nbsp;&nbsp;soundBank = new SoundBank(audioEngine, @"Content\Sound   Bank.xsb");}  
A seguir, podemos tocar os sons de duas formas: Para um som longo (ou em&nbsp;loop), devemos declarar uma variável, carregar o som e, então, tocá-lo ou pará-lo quando quisermos, conforme as linhas a seguir (onde o nome do som seria “notify”):?
      123456      Cue myLoopingSound = null;...myLoopingSound = soundBank.GetCue("notify");&nbsp; myLoopingSound.Play();...myLoopingSound.Stop();  
Agora, se queremos tocar o som como um feito sonoro (uma explosão ou um tiro), podemos fazê-lo diretamente, a partir do objeto soundBank. Por exemplo, para tocar o som de nome “chord”, basta executar a linha:?
      1      soundBank.PlayCue("chord");  
Lembrando que, normalmente, esta linha estará dentro do método “Update” de seu jogo, junto ao comando que vai somar uma vida, verificar se houve alguma colisão entre objetos e iniciar uma explosão, ou coisa semelhante. Até o próximo artigo!