Logo SatellaSoft



Alterar volume do jogo no Construct 2

Veja como alterar o volume em um layout e aplica-lo para as demais de seu jogo.


Ícone homem Gunnar Correa
Ícone data de publicação 14/06/2016
Ícone quantidade de visualização 1,953
Ícone bandeira do Brasil Português

É comum em diversos jogos ter uma opção na qual o player altera o volume do jogo, isto sem a necessidade de largar o controle ou teclado.

As Engine de jogos permitem manipular informações de saída de áudio, dentre elas o volume que será transmitido, sendo assim neste artigo será explicado como fazer um breve mecanismo para alteração de volume em um layout e aplicar para os demais.

Recomendo que para melhor integridade do seu jogo, faça um backup antes de manipular o som e faça um teste seguindo este exemplo em um projeto separado, depois se tudo ocorrer bem, você aplique ao seu game. Isto pelo fato de que você pode se perder e por conta disso comprometer o seu jogo, mas é claro, a regra não é valida para todos.

Com o Construct aberto crie dois layout contendo dois EventSheet.

Criando dois Layout e dois Event Sheet

No Layout 1, insira os componentes abaixo e altere suas respectivas propriedades.

Componente

Name

Text

Slide Bar

slbVolume

 

Text

txtVolume

100

Button

btnIniciar

Iniciar

 

No componente Slide Bar defina as propriedades com as configurações abaixo.

Value

Minimum

Maximum

Step

10

0

25

1

 

Temos nosso layout como mostra a imagem a seguir.

Ajustar o Slide Bar, Text e Button no layout

Insira um componente Audio e um Local Storage no Layout 1.

O componente Audio será o responsável por reproduzir a música nos nossos jogos, em seguida vamos manipular suas propriedades. Já o componente Storage será utilizado para guardar o valor do volume selecionado.

Adicionar um componente Local Storage e um Audio

Carregue um arquivo de música para dentro do Construct e no evento System -> On start of Layout defina para iniciar a música (play) e deixar em loop.

No inicio do layout dar play na música

Adicione outro evento, mas desta vez o Every Tick (a cada frame ou escala), para ação do evento na propriedade Text do componente txtVolume, defina o valor retornado pelo slbVolume (slbVolume.value).

Configurar Every Tick

Crie uma variável global chama de volume e atribua como valor inicial -10.

Defina para a variável dentro do Every Tick o seguinte valor “int(slbVolume.Value) – 20”, neste cabo obtemos o valor da barra de rolagem, subtraímos 20 e por ultimo fazemos um parse para int, ou seja, o valor retornado será um número inteiro (0..1..500..6000).

 

Dentro do Every Tick, adicione uma nova ação para o componente áudio, na propriedade set máster volume, informe o nome da variável que criamos, note que anteriormente definimos a ela o valor que esta na barra de rolagem. O valor é dado em Decibéis.

Agora vamos manipular as propriedades do Local Storage, mas para isto precisamos entender como ele funciona. Ele basicamente é um recurso de chave valor, onde você define o nome de uma chave e em seguida um valor, para recuperar determinado valor, basta informar o nome da chave, veja um exemplo abaixo.

Modelo chave valor do Local Storage

Para definir um valor, usamos o set e para recuperar usamos o get.

Agora que entendemos como isto funciona, dentro do Every Tick, na propriedade Set Item do Local Storage, defina a chave como volume e o valor informe o nome de nossa variável.

Chave volume e valor, valor da variável

 

Se você seguiu todos os procedimentos explicados anteriormente, temos no Every Tick as informações apresentadas na imagem abaixo.

Ações do evento Every Tick para o Event Sheet 1

Se você testar seu jogo agora, poderá ver que já é possível notar que o volume esta sendo alterado, agora o que nos resta é chamar o layout dois e recuperar este valor lá.

Adicione um novo evento para o btnIniciar para o evento  On clicked que ocorre quando o botão foi clicado. Adicione agora uma nova ação que chame o layout dois.

Nossos eventos no Event Sheet1 esta finalizado.

Event Sheet 1 finalizado

 

No Layout dois, foi criada uma cena para dar maior realismo ao som, como mostra a imagem a seguir.

Cenário jogo de plataforma para Event sheet 2 e Layout 2

Agora no Event Sheet no layout dois, crie as ações e eventos conforme mostra a imagem a seguir.

Evento e ações para Event Sheet 2, Local Storage Set master Volume

Basicamente quando o layout for carregado, devemos verificar se o item volume existe, se o item existir obtemos o valor através da chave volume e por último, através do evento On item get atribuímos o valor a variável volume criada no Layout 1 em seguida o valor da variável é atribuído a propriedade Set máster volume.

Muito simples, não? Ficamos por aqui, em caso de dúvida deixem nos comentários.

Até a próxima!




Sobre o autor


Gunnar Correa

Nome: Gunnar Correa

Site: http://www.gunnarcorrea.com


Autodidata, graduado em Desenvolvimento Web e especialista em Tecnologias na Educação em uma universidade no interior de São Paulo. Comecei meus estudos na área de programação quando ainda era criança, e atualmente estou estudando desenvolvimento de jogos.

Sou o CEO do portal SatellaSoft, criado em 2009 com o intuito de compartilhar conhecimento de forma gratuita e inédita.


Comentários



É necessário estar autenticado para comentar, clique aqui para se registrar ou aqui para acessar a sua conta!