Prévia do material em texto
<p>Oponente com atributos</p><p>Aula 4</p><p>Listas: criando o seu jogo de</p><p>cartas com listas e padrões</p><p>Unidade</p><p>2</p><p>Utilizar uma condicional.</p><p>Adicionar clones dos atores</p><p>inteligência, velocidade e força</p><p>ao ator carta do oponente.</p><p>Manipular a visibilidade</p><p>de variáveis.</p><p>O que vamos aprender?</p><p>ACOMPANHE O VÍDEO DA AULA</p><p>https://cursos.alura.com.br/course/scratch-criando-jogo-cartas-listas-padroes/task/134371</p><p>3</p><p>Carta do oponente</p><p>Anteriormente, percebemos que, ao</p><p>clicar em um atributo várias vezes</p><p>seguidas, antes que passe os três</p><p>segundos de espera programados, os</p><p>atores da carta do oponente mudarão</p><p>várias vezes, e somente passados os três</p><p>segundos do último clique no atributo</p><p>é que a carta do oponente voltará a ser</p><p>como no início da rodada. Nesta aula,</p><p>iremos resolver esse problema e trazer</p><p>melhorias para o jogo adicionando</p><p>atributos à carta do oponente.</p><p>4</p><p>Para resolver o problema observado quando clicamos várias vezes</p><p>seguidas em um atributo, primeiro precisamos identificar porque</p><p>ele ocorre.</p><p>Começaremos selecionando o ator inteligência.</p><p>Até o momento, temos os seguintes scripts para esse ator:</p><p>5</p><p>Vamos nos atentar ao seguinte script.</p><p>Podemos perceber que, ao ser clicado, esse ator transmitirá a mensagem</p><p>vira a carta, logo, se clicarmos várias vezes nele, independentemente</p><p>de a carta já estar virada ou não, serão transmitidas várias vezes a</p><p>mensagem vira a carta. Isso ativará várias vezes os scripts em outros</p><p>atores que começam com essa mensagem, criando outros clones.</p><p>Porém, como a carta do oponente já está virada, os clones vão</p><p>aparecendo na frente um do outro.</p><p>Portanto, precisamos pensar em uma forma de obter informações de</p><p>outro ator para saber se a carta está virada para cima ou para baixo.</p><p>6</p><p>Para fazer isso, será necessário comparar uma condição. Da seção</p><p>Controle, arrastaremos o bloco para um espaço da área</p><p>de código. Afinal, precisamos que, ao ser clicado, o ator só transmita</p><p>a mensagem para virar a carta SE a carta do oponente ainda não</p><p>estiver virada.</p><p>Para o espaço da condição, arrastaremos o bloco da seção</p><p>Operadores, como mostra a imagem a seguir:</p><p>Em seguida, para sabermos se a carta está virada, iremos até a seção</p><p>Sensores e arrastaremos o bloco .</p><p>7</p><p>Feito isso, precisaremos escolher o ator que nos informará quando a carta do</p><p>oponente estiver virada. Para isso, clicaremos no segundo menu suspenso</p><p>do bloco de sensores e selecionaremos a opção carta do oponente.</p><p>Em seguida, escolheremos a opção nº de</p><p>fantasia no início do bloco. Assim, o número</p><p>da fantasia do ator carta do oponente</p><p>poderá informar se a carta está virada para</p><p>cima ou para baixo.</p><p>8</p><p>Agora, podemos arrastar esse bloco já configurado para o primeiro</p><p>espaço do bloco operador que descreve uma condicional, deixando-o</p><p>como mostra a imagem a seguir:</p><p>Sabemos que a fantasia do oponente que exibe o verso da carta é a</p><p>fantasia 1, por isso, substituiremos o valor 50, no segundo espaço, pelo</p><p>valor 1.</p><p>Por fim, arrastaremos esse script</p><p>de condição para depois do bloco</p><p>que inicia esse ator, como mostra a</p><p>imagem a seguir.</p><p>9</p><p>Para o ator inteligência, o problema está resolvido. Criamos uma</p><p>condição para que a mensagem vira a carta só seja transmitida se a</p><p>carta do oponente estiver exibindo a fantasia verso. Agora, precisamos</p><p>replicar esse script para os outros atributos. Para isso, vamos abrir o</p><p>recurso Mochila, localizado no rodapé da página.</p><p>10</p><p>Ao abrir a Mochila, podemos excluir o código antigo que usamos para os</p><p>atributos clicando com o botão direito no segundo código disponível.</p><p>Em seguida, clicaremos em apagar.</p><p>Feito isso, vamos arrastar script que se inicia com quando este ator for</p><p>clicado que acabamos construir e arrastar para a Mochila até que a área</p><p>fique azul.</p><p>11</p><p>Com o script salvo e aparecendo como o primeiro código da Mochila,</p><p>selecionaremos o ator velocidade e repetiremos exatamente o</p><p>mesmo processo:</p><p>1. Excluir o script que começa começa com quando este ator for clicado.</p><p>2. Arrastar o script salvo como o primeiro da fila na Mochila para a área</p><p>de código até que esta fique azul, como mostra a figura a seguir.</p><p>Repetiremos esse procedimento também para o ator força.</p><p>12</p><p>Desse modo, resolvemos nosso problema. Ao executar o programa,</p><p>observaremos que, mesmo clicando várias vezes seguidas nos atributos,</p><p>a carta do oponente só mudará se ela estiver exibindo o verso.</p><p>Até o momento, os atores força, inteligência e velocidade terão os</p><p>mesmos scripts, como podemos ver na imagem a seguir:</p><p>13</p><p>Agora, vamos colocar atributos na carta do oponente. Para isso, vamos</p><p>selecionar o ator carta do oponente.</p><p>Em seguida, vamos adicionar, na carta do oponente, clones dos atores</p><p>inteligência, força e velocidade.</p><p>No script que começa</p><p>com ,</p><p>adicionaremos o bloco ,</p><p>da seção Controle. Em seguida,</p><p>selecionaremos a opção inteliência.</p><p>14</p><p>Feito isso, arrastaremos novamente o bloco de criação de clones da</p><p>seção Controle, mas desta vez selecionando a opção força.</p><p>Repetiremos o mesmo processo mais uma vez, porém selecionando a</p><p>opção velocidade.</p><p>15</p><p>Agora, vamos programar esses clones.</p><p>Selecionaremos o ator força.</p><p>Em seguida, arrastaremos para área de código o segundo bloco da fila</p><p>que está salvo na Mochila e que utilizamos para programar os clones dos</p><p>atores cabeça, corpo e pé.</p><p>16</p><p>Repare que, agora, não precisamos mais do bloco</p><p>, por isso, podemos excuí-lo. Para fazer</p><p>isso, clicaremos com o botão esquerdo nesse bloco para selecioná-lo; em</p><p>seguida, clicaremos com o botão direito do mouse e escolheremos a opção</p><p>Apagar 2 Blocos.</p><p>Depois, da seção Variáveis, arrastaremos a variável para o espaço</p><p>com valor 3 no bloco responsável pelo tempo de exibição da carta.</p><p>Desse modo, teremos o seguinte script para o</p><p>clone do ator força.</p><p>17</p><p>Agora, o clone desse ator está programado para aparecer na carta do</p><p>oponente quando ela for virada. Assim, podemos replicar esse script nos</p><p>outros atributos por meio do recurso Mochila. Para isso, salve o script</p><p>que acabamos de construir na Mochila.</p><p>Em seguida, selecionaremos o ator inteligência e arrastaremos o</p><p>script para sua área de código.</p><p>Repita o mesmo procedimento para os atores velocidade</p><p>e força</p><p>18</p><p>Feito isso, os atores inteligência, força e velocidade terão os</p><p>seguintes scripts.</p><p>19</p><p>Agora, precisamos adicionar as variáveis dos atributos da carta do</p><p>oponente, que terão valores diferentes da nossa carta. Para isso,</p><p>precisamos criar novas variáveis para esses atributos.</p><p>Na seção Variáveis, clicaremos em .</p><p>Na janela que se abrirá, nomearemos o primeiro atributo como força</p><p>oponente, selecionando a opção Para todos os atores. Em seguida,</p><p>clicaremos em OK.</p><p>20</p><p>Repetiremos esse processo mais uma vez para criar mais uma variável,</p><p>que nomearemos como inteligência oponente.</p><p>Por fim, repetiremos esse processo pela terceira</p><p>vez para criar a variável velocidade oponente.</p><p>21</p><p>Como a carta está virada, não sabemos exatamente onde iremos</p><p>posicionar essas variáveis. Porém, sabemos a ordem em que elas estão</p><p>(primeiro inteligência, depois força e, por último, velocidade). Primeiro,</p><p>vamos arrastar essas variáveis para que fiquem no local aproximado de</p><p>onde deverão aparecer.</p><p>22</p><p>Para conseguirmos possicionar corretamente essas variáveis, vamos</p><p>mudar a variável tempo para um valor alto, assim, poderemos posicionar</p><p>essas variáveis com calma. Para isso, voltaremos ao ator minha carta.</p><p>No script que começa com , iremos ao bloco que controla</p><p>o tempo de exibição da carta e substituiremos o valor 3 por 30.</p><p>23</p><p>Feito isso, teremos mais tempo para</p><p>conseguir posicionar as variáveis na carta</p><p>do oponente. Em uma variável de cada vez,</p><p>clicaremos com botão direito do mouse e</p><p>selecionaremos a opção letras grandes.</p><p>Em seguida, vamos posicionar</p><p>as variáveis em seus respectivos</p><p>atributos. Assim, quando a carta</p><p>for virada, ela deverá ficar como</p><p>mostra a imagem a seguir.</p><p>24</p><p>Nosso jogo está muito mais completo agora, mas repare que, enquanto a</p><p>carta estiver</p><p>exibindo o verso, as variáveis continuarão aparecendo.</p><p>Como não queremos que isso aconteça, vamos selecionar o ator carta</p><p>do oponente.</p><p>Da seção Variáveis, arrastaremos o bloco</p><p>para o fim do</p><p>script que inicia a rodada. Arrastaremos</p><p>esse bloco mais duas vezes selecionando</p><p>as opções esconder as variáveis</p><p>velocidade oponente e inteligência</p><p>oponente. O script ficará como mostra a</p><p>imagem a seguir.</p><p>25</p><p>Agora que escondemos essas variáveis no início da rodada, queremos</p><p>que elas apareçam quando a carta do oponente for virada. Para isso,</p><p>arrastaremos, da seção Variáveis, o bloco</p><p>para o script que inicia com , logo abaixo do bloco</p><p>responsável por alterar a fantasia e virar a carta no início da rodada.</p><p>Arrastaremos esse bloco mais duas vezes e selecionaremos as variáveis</p><p>inteligência oponente e velocidade oponente. O script ficará como</p><p>mostra a imagem a seguir:</p><p>Desafio</p><p>26</p><p>Nesta aula, resolvemos o erro de cliques nos botões de atributo de</p><p>nossa carta criando uma condicional que envia uma mensagem para</p><p>virar a carta do oponente somente se ela estiver para baixo. Também</p><p>adicionamos os atributos da carta do oponente criando clones dos</p><p>botões de atributo de nossa carta. Além disso, criamos novas variáveis</p><p>para serem os valores dos atributos da carta do nosso oponente.</p><p>Diante disso, seu desafio será pesquisar sobre o uso de condicionais</p><p>para a programação.</p><p>CLIQUE AQUI PARA AVALIAR ESTE MATERIAL</p><p>https://docs.google.com/forms/d/e/1FAIpQLSdj6D4ophEVDczMqZKzLL0_9vCK5C2UoSKSxaMr-1os8-B8-A/viewform</p>