Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

[Dúvida] Seria possível uma tecla diferente para cada instrumento?

Fiz o projeto e achei incrível! Nunca tinha mexido com eventos do teclado antes! Quando terminei o me veio a curiosidade: é possível para cada instrumento ter uma tecla diferente? Por exemplo, para o som POM ser a tecla Q, para a tecla CLAP ser a tecla W...?

3 respostas

Olá Thaynara! Fico feliz em saber que você gostou do projeto e está animada para explorar mais possibilidades. Respondendo à sua pergunta, sim, é possível definir uma tecla diferente para cada instrumento. Para isso, você pode utilizar a propriedade "keyCode" do objeto "event" para identificar qual tecla foi pressionada e, a partir disso, executar o som correspondente ao instrumento desejado.

Por exemplo, supondo que você tenha um objeto "audio" para cada instrumento, você pode definir as teclas da seguinte forma:

  • POM: tecla Q (keyCode 81)
  • CLAP: tecla W (keyCode 87)
  • Outros instrumentos: outras teclas

E então, no evento "keydown" do teclado, você pode verificar qual tecla foi pressionada e executar o som correspondente ao instrumento desejado. Algo como:

document.addEventListener('keydown', function(event) {
  if (event.keyCode === 81) { // Tecla Q pressionada
    audioPom.play(); // Executa o som do POM
  } else if (event.keyCode === 87) { // Tecla W pressionada
    audioClap.play(); // Executa o som do CLAP
  } else {
    // Outra tecla pressionada, não faz nada
  }
});

É claro que você pode adaptar essa lógica para os instrumentos que desejar e as teclas que preferir. Espero ter ajudado e bons estudos!

solução!

Obrigado! Me ajudou muito! Depois que terminei fiquei curiosa em como eu poderia fazer isso. Eu tentei fazer e depois de um tempo pensando tive a ideia de usar o switch, e usei os números invés das letras:

document.onkeydown = function (evento) {

        switch (evento.code) {
            case 'Numpad7':
                tocaSom('#som_tecla_pom')
                break
            case 'Numpad8':
                tocaSom('#som_tecla_clap')
                break
            case 'Numpad9':
                tocaSom('#som_tecla_tim')
                break
            case 'Numpad4':
                tocaSom('#som_tecla_puff')
                break
            case 'Numpad5':
                tocaSom('#som_tecla_splash')
                break
            case 'Numpad6':
                tocaSom('#som_tecla_toim')
                break
            case 'Numpad1':
                tocaSom('#som_tecla_psh')
                break
            case 'Numpad2':
                tocaSom('#som_tecla_tic')
                break
            case 'Numpad3':
                tocaSom('#som_tecla_tom')
                break
            default:
                console.log('test')
        }
    }

E eu não sabia do KeyCode então usei a forma como a professora usou. Ainda tem várias coisas que eu gostaria de implementar mas está funcionando certinho! Enfim, obrigada pela ajuda! Você tirou a duvida que estava tendo em relação ao meu código

Nossa ai sim. Ficou muito legal. Parabéns.