{"id":391,"date":"2024-06-09T09:30:34","date_gmt":"2024-06-09T12:30:34","guid":{"rendered":"http:\/\/pplay.local\/?page_id=391"},"modified":"2024-06-20T23:12:33","modified_gmt":"2024-06-21T02:12:33","slug":"tutorial-sound","status":"publish","type":"page","link":"http:\/\/www2.ic.uff.br\/pplay\/tutoriais\/tutorial-sound\/","title":{"rendered":"Tutorial Sound"},"content":{"rendered":"\n<p class=\"has-black-color has-text-color has-link-color wp-elements-6190409879a5d7af0d80c4a2ca42904b\">O objetivo deste tutorial \u00e9 carregar uma m\u00fasica de fundo para o jogo e mais um som aleat\u00f3rio que ocorre ao pressionar um bot\u00e3o. Iremos adotar o som de uma porta fechando ao pressionar espa\u00e7o. Os arquivos necess\u00e1rios para seguir este tutorial encontra-se a seguir:<\/p>\n\n\n\n<div class=\"wp-block-file\"><a id=\"wp-block-file--media-fc6cc154-cc01-4ddf-9877-85c6c258c0d7\" href=\"http:\/\/www2.ic.uff.br\/pplay\/wp-content\/uploads\/2024\/06\/musicaFase01-2.ogg\">musicaFase01<\/a><a href=\"http:\/\/www2.ic.uff.br\/pplay\/wp-content\/uploads\/2024\/06\/musicaFase01-2.ogg\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-fc6cc154-cc01-4ddf-9877-85c6c258c0d7\">Download<\/a><\/div>\n\n\n\n<div class=\"wp-block-file\"><a id=\"wp-block-file--media-b4f0293a-c919-419c-a1f3-1a28b2673239\" href=\"http:\/\/www2.ic.uff.br\/pplay\/wp-content\/uploads\/2024\/06\/portaFechando.ogg\">portaFechando<\/a><a href=\"http:\/\/www2.ic.uff.br\/pplay\/wp-content\/uploads\/2024\/06\/portaFechando.ogg\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-b4f0293a-c919-419c-a1f3-1a28b2673239\">Download<\/a><\/div>\n\n\n\n<p>Descompacte esses arquivos na pasta onde seu c\u00f3digo ser\u00e1 implementado. Usamos os \u00e1udios no formato .ogg por ser um formato muito leve (neste caso 3 vezes mais leve que o formato mp3). Para converter seus arquivos para este formato voc\u00ea pode usar as seguintes ferramentas online:<\/p>\n\n\n\n<ul>\n<li><a href=\"https:\/\/convertio.co\/\" target=\"_blank\" rel=\"noreferrer noopener\">Convert.io<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/audio.online-convert.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Online Audio Converter<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"has-black-color has-text-color has-link-color wp-elements-db3ca1aa1b8913a3c941561babbf71cf\">Inicialmente vamos estabelecer o c\u00f3digo para manter a m\u00fasica em loop ao abrir o jogo. Come\u00e7amos com as importa\u00e7\u00f5es necess\u00e1rias, criamos o objeto musica01 e configuramos este objeto. Entramos ent\u00e3o no GameLoop fazendo o update da janela a cada la\u00e7o.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from PPlay.window import *\nfrom PPlay.sound import *\n\njanela = Window(600, 400)\n\nmusica01 = Sound(\"musicaFase01.ogg\")\nmusica01.loop = True\nmusica01.play()\n\nwhile True:\n\n    janela.update()<\/code><\/pre>\n\n\n\n<p>Com este c\u00f3digo em execu\u00e7\u00e3o voc\u00ea dever\u00e1 ser capaz de ouvir a m\u00fasica tocando. Agora vamos adicionar um teclado para fazer o controle do segundo som.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from PPlay.window import *\nfrom PPlay.sound import *\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">from PPlay.keyboard import *\n<\/mark>\njanela = Window(600, 400)\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">teclado = Keyboard()\n<\/mark>\nmusica01 = Sound(\"musicaFase01.ogg\")\nmusica01.loop = True\nmusica01.play()\n\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">portaFechando = Sound(\"portaFechando.ogg\")\n<\/mark>\nwhile True:\n\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">    if teclado.key_pressed(\"SPACE\"):\n        portaFechando.play()\n<\/mark>\n    janela.update()<\/code><\/pre>\n\n\n\n<p>Agora voc\u00ea poder\u00e1 escutar o barulho da porta fechando sempre que pressionar espa\u00e7o, no entanto \u00e9 not\u00f3rio que este som est\u00e1 muito mais alto que a m\u00fasica de fundo, ent\u00e3o vamos fazer o controle do volume deste objeto.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from PPlay.window import *\nfrom PPlay.sound import *\nfrom PPlay.keyboard import *\n\njanela = Window(600, 400)\nteclado = Keyboard()\n\nmusica01 = Sound(\"musicaFase01.ogg\")\nmusica01.loop = True\nmusica01.play()\n\nportaFechando = Sound(\"portaFechando.ogg\")\n\nwhile True:\n\n    if teclado.key_pressed(\"SPACE\"):\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">        portaFechando.set_volume(50)\n        portaFechando.stop()\n<\/mark>        portaFechando.play()\n\n    janela.update()<\/code><\/pre>\n\n\n\n<p>Note que \u00e9 necess\u00e1rio alterar o volume e antes de realizar o play() \u00e9 necess\u00e1rio fazer o stop() para que o volume de fato seja configurado. Vamos definir alguns controles para a m\u00fasica agora:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from PPlay.window import *\nfrom PPlay.sound import *\nfrom PPlay.keyboard import *\n\njanela = Window(600, 400)\nteclado = Keyboard()\n\nmusica01 = Sound(\"musicaFase01.ogg\")\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">musica01.set_volume(50)\nmusica01.stop()<\/mark>\nmusica01.loop = True\nmusica01.play()\n\nportaFechando = Sound(\"portaFechando.ogg\")\n\n\nwhile True:\n\n    if teclado.key_pressed(\"SPACE\"):\n        portaFechando.set_volume(50)\n        portaFechando.stop()\n        portaFechando.play()\n    \n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">    if teclado.key_pressed(\"S\"):\n        musica01.stop()\n    if teclado.key_pressed(\"P\"):\n        musica01.set_volume(50)\n        musica01.stop()\n        musica01.play()<\/mark>\n\n    janela.update()<\/code><\/pre>\n\n\n\n<p>Desta forma garantimos que a m\u00fasica ser\u00e1 reproduzida no volume 50%, e podemos controlar se a musica ser\u00e1 tocada ou n\u00e3o com as teclas &#8220;P&#8221; e &#8220;S&#8221;.<\/p>\n\n\n\n<p><strong>Cr\u00e9dito: Sergio Herman<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>O objetivo deste tutorial \u00e9 carregar uma m\u00fasica de fundo para o jogo e mais um som aleat\u00f3rio que ocorre ao pressionar um bot\u00e3o. Iremos adotar o som de uma porta fechando ao pressionar espa\u00e7o. Os arquivos necess\u00e1rios para seguir este tutorial encontra-se a seguir: Descompacte esses arquivos na pasta onde seu c\u00f3digo ser\u00e1 implementado. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":57,"menu_order":7,"comment_status":"closed","ping_status":"closed","template":"tutorial-template.php","meta":{"footnotes":""},"_links":{"self":[{"href":"http:\/\/www2.ic.uff.br\/pplay\/wp-json\/wp\/v2\/pages\/391"}],"collection":[{"href":"http:\/\/www2.ic.uff.br\/pplay\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/www2.ic.uff.br\/pplay\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/www2.ic.uff.br\/pplay\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www2.ic.uff.br\/pplay\/wp-json\/wp\/v2\/comments?post=391"}],"version-history":[{"count":14,"href":"http:\/\/www2.ic.uff.br\/pplay\/wp-json\/wp\/v2\/pages\/391\/revisions"}],"predecessor-version":[{"id":546,"href":"http:\/\/www2.ic.uff.br\/pplay\/wp-json\/wp\/v2\/pages\/391\/revisions\/546"}],"up":[{"embeddable":true,"href":"http:\/\/www2.ic.uff.br\/pplay\/wp-json\/wp\/v2\/pages\/57"}],"wp:attachment":[{"href":"http:\/\/www2.ic.uff.br\/pplay\/wp-json\/wp\/v2\/media?parent=391"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}