Instrucoes: mudanças entre as edições

De IFSC
Ir para navegação Ir para pesquisar
imported>Fargoud
imported>Fargoud
 
(39 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
=Variáveis =
"Lógica Básica"


No Scratch, para se criar variáveis, acesse a categoria Variáveis, e clique no botão “criar uma variável” ou “criar uma lista”. Veja na imagem ao lado.
=Instrução '''SEMPRE'''=


Depois de clicado em um dos botões, vai ser aberto uma tela que vai pedir para você dar um nome a sua variável, como mostrado ao lado.
Como já foi visto antes, é possível criar no Scratch uma ou mais ações que funcionem de maneira contínua, repetindo-se por tempo indeterminado.  
Além disso, você deverá selecionar se ela vai ser uma variável apenas de um único componente do jogo, ou responsável por todos os objetos do jogo.


=Operadores Relacionais=
Para isso se usa o comando SEMPRE, da categoria Controle.


Assim como na matemática, haverá a necessidade no Scratch de comparar valores. Operadores relacionais servem para comparar qualquer tipo de valor. No Scratch, os operadores relacionais são apenas 3, sendo acessados na categoria Operadores:
Qualquer outro bloco que for encaixado dentro do comando sempre será executado até o programa ser parado.  


Esses operadores mostrados são na ordem, os de menor (<), igual (=) e maior (>). É possível fazer com eles comparações com variáveis ou números, como mostrados abaixo:
Para isso, vamos fazer o exemplo abaixo:


=Operadores Lógicos=
==Exemplo do Tambor==
 
O objetivo será fazer um tambor tocar um som, com o intervalo de tempo de 1 segundo de diferença, além do tambor trocar constantemente de cor, assim como todo esse processo deve ocorrer infinitamente.
 
Carregue o ator '''"Drum"''', do Scratch.


Além dos operadores relacionais, existem os operadores lógicos, no Scratch. Os operadores lógicos também servem para comparar qualquer tipo de valor. No


Scratch, os operadores lógicos também são 3, sendo acessados através da categoria Operadores:
Inicialmente, vamos arrastar o bloco "QUANDO BOTÃO IR FOR CLICADO" e o "SEMPRE", unindo-os, ambos da categoria Controle, como mostrado na imagem abaixo.
Para entendermos melhor como funciona cada um deles, vejamos esses exemplos:
Quando eu digo “Tenho um computador e um celular”, ao afirmar isso, a palavra e indica que eu possuo os dois objetos, no caso o computador e o celular.
Quando eu digo “Tenho um computador ou um celular”, ao afirmar isso, a palavra ou indica que eu possuo apenas um dos objetos, ou o computador, ou o celular.
E quando eu digo “Não tenho um celular”, ao afirmar isso, a palavra não comprova que eu não possuo um celular.


Assim como no caso dos operadores relacionais, os operadores lógicos mostrados são o (e), (ou) e (não). É possível fazer com eles, comparações com variáveis ou números, como mostrados abaixo:
Em seguida, arraste para dentro do bloco "SEMPRE", o comando "MUDE 25 AO EFEITO DE COR", que está na Categoria "APARÊNCIA", e altere o parâmetro 25 para 5, como mostra a imagem abaixo (para não ficar tão rápido):


=Instrução SE=
[[image: SCRATCHtambor1.png|center]]
 
Teste para ver como funciona!!!
 
Mas, tambores têm que emitir som, né?
 
Então, arraste para dentro do bloco "SEMPRE", o comando "TOQUE O SOM 'Low Tom' ATÉ O FIM", que esta na categoria "SOM". E agora, o que aconteceu??
 
[[image: SCRATCHtambor2.png|center]]
 
 
Por fim, arraste para dentro do bloco "SEMPRE", o comando "MUDE 10 NO EFEITO TOM", que também está na categoria "SOM", conforme a figura abaixo. Ele fará com que o som do tambor mude, com o tempo, tornando a animação mais interessante.
 
[[image: SCRATCHtambor3.png|center]]
 
=Instrução '''SE'''=
 
Para se criar vários jogos e animações, é importante usar condições.
 
Para entendermos o uso da condição '''"Se"''', faremos uma bola bater em um objeto e quando ela bater, voltar.
 
Para isso, vamos seguir o exemplo abaixo:
 
[[image: SCRATCHcondSE0.png|center]]
 
Neste exemplo, usamos o bloco '''"Se bater na borda, volte"''' para indicar a condição.


Para se criar vários jogos e animações, é importante usar condições. Para entendermos o uso da condição Se, faremos uma bola bater em um objeto e quando ela bater, voltar. Para isso, vamos seguir o exemplo abaixo:
O objetivo será fazer a bola cair, bater na cabeça do gato e voltar para cima. Quando ela bater na borda superior, voltar e bater novamente no gato.
Inicialmente, mude o nome do sprite para “bola”, e depois sua direção para 180 (para ela ir para baixo).
Os comandos da bola são iniciados quando for clicado sobre a bola. Ela sempre irá se mover, e se tocar na borda (qualquer borda do palco) ela vai para a direção contrária.
Os comandos da bola são iniciados quando for clicado sobre a bola. Ela sempre irá se mover, e se tocar na borda (qualquer borda do palco) ela vai para a direção contrária.
Puxe o bloco se na categoria controle e coloque na área de edição de scripts.
Dentro do se coloque o sensor tocando em que fica na categoria Sensores. Escolha no menu o nome do objeto que será tocado (no caso, o gato).


[[image: SCRATCHinstr1.png|center]]
Porém, podemos deixar mais interessante: vamos tentar fazer a bola ricochetear TAMBÉM na cabeça do gato, e não só na borda!
 
Inicialmente, mude o nome do primeiro sprite para "gato" e o do segundo, para “bola”, e depois sua direção para 180 (para ela ir para baixo, inicialmente).
 
Agora, vamos incluir o controle '''"Se (CONDICAO) então"''' no nosso programa. Puxe o bloco SE na categoria CONTROLE, e coloque na área de edição de scripts.
 
[[image: SCRATCHcondSE1.png|center]]
 
A condição, por sua vez, será o bloco '''"tocando em"''', das ferramentas de SENSORES. Escolha no menu o nome do objeto que será tocado (no caso, o gato).
[[image: SCRATCHcondSE2.png|center]]
 
Dentro do bloco SE, coloque o que acontece quando a bola tocar o gato, ou seja, acrescente o bloco aponte para a direção.
 
Isso significa que quando a bola tocar no gato, ela irá mudar sua direção para aquela determinada no bloco de comando (neste caso, 30 graus, mas poderia ser outra).
 
Acrescente o bloco SEMPRE, para que o teste seja feito o tempo todo, e coloque a condição “SE” dentro do SEMPRE.
 
 
E, agora sim!!!!! Conseguimos!!! [[image: PMCsmile.png|center]]
 
Toda vez que a bola bater na borda ou no gato, ela vai ricochetear!!!
 
=Instrução '''SE-SENÃO'''=
 
Para entendermos essa condição, vamos fazer uma bola ir para a direção do gol, e se bater nele, dizer “Gol!”.
 
Caso contrário, a bola apenas continuará movendo-se na tela, o que não tem muita graça.
 
 
Inicialmente, faça o cenário do gol na área de palco, e adicione o ''sprite'' da bola, para ficar semelhante ao mostrado.
 
Você tanto pode modificar um cenário de quadra do Scratch, preenchendo toda a trave com uma só cor, ou pode desenhar seu próprio cenário. Fica ao seu critério! (vide instruções no Capítulo 4 - [[Cenarios| Cenários]]).
 
[[image: SCRATCHfutebol1.png|center]]
 
Não esqueça de mudar a direção do '''sprite''' bola, pra 30 graus, por exemplo, pra que ela suba, na direção do gol.
 
Em seguida, insira o bloco de EVENTO "QUANDO ESTE ATOR FOR CLICADO", sendo o ator, a Bola, para que clicar nela inicie o programa (como se fosse um chute, em um jogo).
 
Em seguida, arraste o bloco de MOVIMENTO "MOVA 10 PASSOS", e mude o número de passos para 200, pra que, ao ser clicada, a bola se desloque bastante na direção inicial que foi programada (30 graus).
 
Se quiser, inclua o bloco "TOQUE O SOM 'POP'", da categoria SOM, para ouvir a bola batendo.
 
O próximo passo, finalmente, é '''inserir o bloco "SE-ENTÃO-SENÃO", da categoria CONTROLE''', para vermos como ele funciona!
 
Este bloco testa uma condição. Se esta condição for VERDADEIRA, ele executa o que está dentro do sub-bloco ENTÃO. Se a condição for falsa, vai executar o que está dentro do sub-bloco SENÃO.
 
A condição que vamos colocar é que o ator/''sprite'' bola toque a trave por dentro (completando o gol).
 
E como vamos fazer isto???
 
Simples!!!
 
Utilizando o bloco SENSOR "TOCANDO NA COR".
 
Insira este bloco como condição da instrução "SE-ENTÃO-SENÃO", e clique na bolinha de cor para selecionar (usando a ferramenta CONTA-GOTAS) a cor de preenchimento da trave!!!
 
Desta forma:
 
[[image: SCRATCHinstrucoes2.png|center]]
 
[[image: SCRATCHinstrucoes3.png|center]]
 
 
Prontinho!! [[image: PMCsmile.png]]
 
Seria possível verificar se a bola entrou no gol também pelas posições X e Y do ''sprite'' na tela. Vamos testar isto mais para a frente.
 
 
Agora, dentro do bloco "SE-ENTÃO-SENÃO", vamos inserir as ações que deverão ocorrer quando a bola tocar o gol.


Dentro do bloco se, coloque o que acontece quando a bola tocar o gato, ou seja, acrescente o bloco aponte para a direção. Isso significa que quando a bola tocar no gato, ela irá mudar sua direção para aquela determinada no bloco de comando.
Para isto, arraste o bloco (substitua ''Olá'' por ''GOOOLLLL!!!'') da Categoria APARÊNCIA. Também arraste o bloco "TOQUE O SOM ''Miau'' ATÉ O FIM", da Categoria SOM, trocando o som ''Miau'', pelo som ''Goal Cheer'', do Scratch, como mostrado abaixo:
Escolha a direção (0) cima, pois após bater no gato a bola deve subir.
[[image: SCRATCHsesenao3.png]]"DIGA ''Olá'' POR 2 seg"
Acrescente o bloco sempre, para que o teste seja feito o tempo todo, e coloque a condição “Se” dentro do sempre.
Para finalizar, acrescente o controle para o início da execução do script. Neste caso foi usado o quando bandeira verde clicado.
Para testar esse projeto, clique sobre a , e caso queira pará-lo, clique sobre o .
Agora vamos usar o teste completo: “Se/Senão”. Para entendermos essa condição, vamos fazer uma bola ir para a direção do gol, e se bater nele, dizer “Gol!”. Caso contrário, a bola apenas continuará movendo-se na tela.
Inicialmente faça o desenho do gol na área de palco, e adicione o


sprite de uma bola para ficar semelhante ao mostrado.
É necessário, após o gol, colocar a bola em uma posição inicial, de novo, para recomeçar o jogo.
Primeiro mude a direção da bola para 0, para ela ir na direção do gol. Para isso, arraste para cima a linha em azul no objeto bola, como indica a imagem ao lado, com os itens circulados em amarelo:
Acrescente na área de edição o bloco Se / Senão que fica na categoria Controle, como mostrado ao lado. Depois coloque no espaço do se o sensor tocando na cor, como indicado abaixo.


Em seguida, neste último bloco que você arrastou, clique no quadrado colorido. O ponteiro do mouse vai se transformar em um conta gotas, onde você deverá clicar em algum lugar para selecionar uma cor.
Utilize o bloco "VÁ PARA ''posição aleatória''", da categoria MOVIMENTO, para reposicionar a bola em qualquer lugar, ou troque ''posição aleatória'' por ''ponteiro do mouse''.
Com isso, você deverá clicar no fundo do gol, que possuí uma cor cinza claro, deixando o quadradinho deste bloco também na cor cinza claro, como representado nos processos ao lado.
Ainda dentro do bloco se, coloque a ação que deve ocorrer quando a bola tocar o gol, ou seja, arraste o bloco diga Gol! por 2 segundos, como mostrado abaixo:


Em seguida, você deve colocar dentro do senão o comando mova, para que a bola continue andando caso ela não toque no gol, como mostrado ao lado.
Assim, logo depois do gol e da comemoração, a bola vai para onde o mouse do usuário está posicionado.
Coloque os comandos Se/Senão dentro do bloco sempre, para que este teste seja feito o tempo todo.
Por fim, coloque no começo destes comandos, o bloco quando bola clicada. Isso fará com que a bola ande quando for clicada com o mouse. Seus comandos ficarão semelhantes ao mostrado ao lado.


=Bloco de repetição "Sempre"=
E também é MUITO importante, que o bloco de MOVIMENTO "SE TOCAR NA BORDA VOLTE" seja adicionado ao final do código, porque senão, toda hora, quando a bola "escapar" do palco, você vai ter que reposicionar a bola pelas suas coordenadas, X e Y, o que é muito chato!


Como já foi visto antes, é possível criar no Scratch uma ou mais ações que funcionem de maneira contínua, se repetindo por tempo indeterminado. Para isso se usa o comando sempre, da categoria Controle. Qualquer outro bloco que for encaixado dentro do comando sempre será executado até o programa ser parado. Para isso, vamos fazer o exemplo abaixo:
[[image: SCRATCHsesenao1.png]]
O objetivo será fazer um tambor tocar um som, com o intervalo de tempo de 1 segundo de diferença, além do tambor trocar constantemente de cor, assim como todo esse processo deve ocorrer infinitamente.
 
Inicialmente, vamos arrastar o bloco quando bandeira verde clicado e o sempre, unindo-os, ambos da categoria Controle, como mostrado na imagem abaixo.
 
A última coisa a fazer é decidir o que fazer, caso o chute não resulte em Gol!!???
 
Bom, o natural é mover a bola, né? Então, agora vamos inserir o código para a parte "SENÃO", da instrução.
 
Se a bola entrar na trave, faz tudo que foi descrito acima. SENÃO, move o ator Bola, 10 passos, com a instrução de MOVIMENTO:
 
[[image: SCRATCHsesenao2.png]]
 
Era isto!!!
 
Gostou???
 
Nossos programas estão ficando grandes, né??
 
=Instrução '''REPITA'''=
 
Às vezes há a necessidade de no Scratch você fazer com que um processo <u>dure um certo número de vezes</u>.
 
A estrutura de repetição REPITA faz com que as ações, dentro deste bloco, sejam realizadas uma determinada quantidade de vezes.
 
Para entendermos essa instrução, vamos criar um projeto simples, no qual nosso objetivo será fazer uma menina falar ''“Olá!”'' por 10 vezes, durante 1 segundo, para cada fala. Em seguida, depois desse processo, a menina deverá desaparecer da tela.
 
A primeira coisa a fazer é adicionar um cenário e um ator, no caso, uma Menina (pode também ser a sua foto!!!), ao programa. Veja o exemplo abaixo:
 
[[image: SCRATCHinstrrepita1.png|center]]
 
Em seguida, vamos arrastar os blocos "QUANDO BOTÃO IR FOR CLICADO" e "REPITA 10 VEZES", ambos da categoria Controle, e vamos encaixá-los, como mostra a imagem abaixo. Eu preferi mudar o número de iterações, ou ''loops'', para 5 vezes:
 
[[image: SCRATCHinstrrepita2.png|center]]
 
Na aba "SONS", grave sua própria voz dizendo "Olá!". Esta é a gravação da minha voz, dizendo ''Olá'', de forma simpática! [[image: PMCsmile2.png]]
 
 
[[image: SCRATCHinstrrepita3.png|center]]
 
Se preferir, mude o nome do som, na caixa de texto. Caso você não faça isto, o nome permanecerá como ''"recording1"'' (que significa "gravação1", em português).
 
Agora, acrescente dentro do bloco "REPITA", o bloco "TOQUE O SOM ''recording1'' ATÉ O FIM". Quando você clicar no botão "IR", a menina deverá repetir seu Olá 5 vezes!
 
[[image: SCRATCHinstrrepita4.png|center]]
 
 
Depois disto, arraste os blocos "DIGA ''Olá'' POR 2 seg" (mude o tempo para 0.5 segundo), da categoria Aparência.
 
E <u>fora do bloco "REPITA"</u> adicione os blocos "PRÓXIMA FANTASIA", da categoria Aparência, e "DIGA ''Finalmente!''", da categoria Aparência.
 
Vai ficar assim:
[[image: SCRATCHinstrrepita5.png|center]]
 
Agora, teste o seu programa.
 
O som e o texto "Olá" serão executados 5 vezes, como foi programado, e depois, a mocinha muda de imagem e de texto!
 
=Instrução '''REPITA ATÉ QUE'''=
 
Como visto na estrutura repita, às vezes há a necessidade de no Scratch você fazer com que um processo dure determinado número de vezes.
 
Mas também pode ser necessário que algo seja realizado continuamente, <u> até uma ação acontecer</u>!!! E o momento em que esta ação vai acontecer, por exemplo, o usuário resolver digitar uma tecla, não tem como ser previsto ou determinado, antecipadamente.
 
Por esta razão a estrutura de repetição "REPITA ATÉ QUE" é necessária!!! Ela faz com que as ações dentro deste bloco sejam interrompidas somente quando alguma ação, determinada, for realizada.
 
Para entendermos a diferença entre o "REPITA ''x'' VEZES" e o "REPITA ATÉ QUE" vamos usar o mesmo exemplo, da seção anterior.
 
Troque o bloco de Controle "REPITA 5 VEZES", do programa da menina, pelo bloco "REPITA ATÉ QUE".
 
Note que este tipo de bloco tem uma CONDIÇÃO, para ser executado! O anterior era condicionado a um número fixo de vezes. Já este terá que usar um bloco do tipo que existe nas Categorias "SENSORES" e "OPERADORES".
 
[[image: SCRATCHinstrptate.png|center]]
 
Vamos escolher o bloco "TECLA ''ESPAÇO'' PRESSIONADA?", da categoria SENSORES, e vamos encaixá-lo no campo de condição, do bloco "REPITA ATÉ QUE".
 
Pra que o programa não trave tanto (o que sempre acontece quando usamos muitos eventos), retire o bloco "DIGA OLÁ", e deixe só o de SOM.
 
Vai ficar assim:
 
[[image: SCRATCHinstrptate2.png|center]]
 
Quando você clicar no Botão IR, a menina começa a repetir o áudio "Olá" até que você pressione a tecla de Espaço. Note que pode ser que você precise pressionar várias vezes, até o Scratch perceber!!! [[image: PMCsmile2.png]]
 
=Outras instruções=
 
Outras instruções importantes da categoria CONTROLE, como "ESPERE ATÉ QUE" e "PARE TODOS" ainda não foram mostradas.
 
* "ESPERE ATÉ QUE" - faz com que seus blocos pausem sua execução, até ocorrer algo no jogo. Depois que isso ocorre, a execução dos comandos volta a acontecer.
 
* "PARE TODOS" - vai fazer parar todos os blocos, de todos os objetos em nosso jogo. Este bloco é muito usado quando se deseja parar um jogo, depois que o jogador perde o jogo.


Em seguida, arraste para dentro do bloco sempre, o comando mude o efeito cor por 25, que esta na categoria Aparência, como mostra a imagem ao lado.
Depois, arraste para dentro do bloco sempre, o comando toque o tambor 48 por 0.2 batidas, que esta na categoria Som. Coloque-o abaixo do último bloco encaixado, como exibe a imagem ao lado.
Por fim, arraste para dentro do bloco sempre, o comando espere 1 segundo, que esta na categoria Controle. Coloque-o abaixo do último bloco encaixado, como exibe a figura ao lado.
Para testar esse projeto, clique sobre a , e ela vai executar os blocos de comando, sem parar, sempre mudando a cor do tambor e tocando um som. Caso queira parar o projeto, clique sobre o .
Depois


=Bloco de Repetição "Sempre SE"=


de visto as estruturas sempre e se, existe também um bloco no Scratch que é a junção de ambos. O comando sempre se é a junção destes dois blocos, e tem por função verificar constantemente, se uma condição é verdadeira ou não.
-------------------------------------
Para isso, vamos criar um pequeno conjunto de blocos com o seguinte objetivo: Após habilitar a bandeira verde, faça com que seja verificado se a tecla “espaço” foi pressionada, e sempre que ela for apertada, fará o gato mover 10 passos. Além disso, caso ele encoste na borda, deverá voltar.


De início, arraste os blocos quando bandeira verde clicado e sempre se, ambos da categoria Controle, e encaixe-os como mostrado ao lado.
{| border="1" cellpadding="5" cellspacing="0"
Depois, arraste o bloco tecla espaço pressionada?, da categoria Sensores, para frente da repetição do sempre se, como mostra a imagem ao lado.
! style="background: #cdc5bf;" | [[Cenarios | <<  AULA 4 - Criando e alterando cenários]]
Em seguida, encaixe os blocos mova 10 passos e se tocar na borda, volte, que estão na categoria Movimento, e coloque-os dentro do sempre se, como indica a figura ao lado.
! style="background: #cdc5bf;" | AULA 5 - Trabalhando com instruções
Para testar esse projeto, clique sobre a e depois pressione a tecla “espaço” do teclado. Perceba que os comandos sempre serão executados, se este tecla for apertada.
! style="background: #cdc5bf;" | [[Variaveis| AULA 6 - Usando Variáveis >>]]
Às vezes há a necessidade de no Scratch você fazer com que um processo dure um certo número de vezes. A estrutura de repetição repita faz com que as ações, dentro deste bloco, sejam realizadas uma determinada quantidade de vezes.
|}
Para entendermos esse comando, vamos criar um projeto simples, onde nosso objetivo será fazer uma menina falar “Olá!” por 10 vezes, por 1 segundo para cada fala. Porém, depois desse processo, a menina deverá desaparecer da tela.
De início, vamos arrastar os blocos quando bandeira verde


clicado e repita, ambos da categoria Controle, e vamos encaixá-los como mostra a imagem ao lado.
[[Introdução_ao_Scratch | << Página do Curso de Scratch]]
Em seguida, arraste os blocos diga Olá! por 2 segundos e desapareça, ambos da categoria Aparência.
O comando que mostrará a fala da menina deverá estar dentro do bloco repita, e o desapareça depois do comando de repetição, como indica a figura ao lado.
Por fim, no bloco diga Olá! por 2 segundos, altere o valor 2, para 1. Para isso, no local circulado na imagem ao lado, clique sobre o número 2. Ele ficará selecionado, e com isso você pode digitar o número 1.
Esse mesmo processo ocorre se você quiser alterar o valor do comando repita, ou mesmo o “Olá!” por outra palavra ou frase.
Para testar esse projeto, clique sobre a , e caso queira pará-lo, clique sobre o .
Como visto na estrutura repita, às vezes há a necessidade de no Scratch você fazer com que um processo dure determinado número de vezes. Mas também pode ser necessário que algo seja realizado continuamente, até uma ação acontecer. Para isso, usa-se a estrutura de repetição repita até, que faz com que as ações dentro deste bloco, sejam interrompidas quando alguma ação for feita.
Para melhor entendimento, vamos usar o mesmo exemplo apresentado na explicação do bloco sempre se. Mas agora, vamos eliminar o comando sempre se, e colocar em seu lugar o bloco repita até. Veja na imagem ao lado, o exemplo já pronto, com a troca do bloco, pelo repita até.
Para testar esse projeto, clique sobre a e depois pressione a tecla “espaço” do teclado. Observe que desta vez, com o repita até, o programa já começa com o gato se movimentando de um lado para outro, e só para quando a tecla “espaço” for pressionada. Porém, anteriormente, com o sempre se, o programa fazia o gato se movimentar sempre que a tecla “espaço” fosse pressionada.
Ás vezes, ao criarmos nossos jogos no Scratch, haverá a necessidade que sair dos blocos de comando de um sprite, e acessar comandos de outros personagens em nosso jogo. Para fazer esse tipo de ação, usamos o recurso de “Mensagens” no Scratch.
Para entendermos como funciona, vamos fazer o seguinte exemplo: Ao apertar a seta para a direita, nosso gato vai andar para essa direção, e será exibida na tela “Você está andando para a direita”. Caso seja pressionada a tecla para a esquerda, o gato anda para essa direção, e aciona a frase “Você está andando para a esquerda”.
No nosso gato Scratch, monte esses dois conjuntos de blocos, como configurados abaixo, que vai fazer nosso gato andar para a direita, quando a seta direita for pressionada, e andar para a esquerda, quando a seta esquerda for pressionada.
Depois de feitos esses conjuntos de blocos no gato, arraste o bloco anuncie para todos, que esta na categoria Controle, embaixo de cada conjunto de blocos, como mostra abaixo:
Após encaixado este bloco, no primeiro anuncie para todos, clique sobre a setinha que existe neste bloco, e sem seguida, na opção “novo”, como mostra ao lado.
Depois de clicado em novo, será mostrada uma tela, em que é pedido para você dar um nome a esta mensagem. Para esta primeira mensagem, vamos chamá-la de “Direita”. Após digitado “Direita”, basta dar ok.
Agora, no segundo bloco de comandos do gato, também encaixamos um anuncie para todos. Clique também sobre a setinha que existe neste bloco, e sem seguida, na opção “novo”, como mostra ao lado.
Depois de clicado em novo, será mostrada uma tela, em que é pedido para você dar um nome a esta mensagem. Para esta segunda mensagem, vamos chamá-la de “Esquerda”. Após digitado “Esquerda”, basta dar ok.
Depois, crie um sprite que contenha apenas texto. Sendo o traje 1 deste sprite com a frase “Você está andando para a direita”, e o traje 2 do mesmo objeto, a frase “Você está andando para a esquerda”.
Vamos montar agora os blocos de comando do objeto “frase”. O bloco anuncie para todos, que colocamos no gato, é o que vai acionar nosso objeto “frase”.
Primeiro, vamos arrastar dois blocos do comando quando eu ouvir, que estão na categoria Controle. Em seguida, arraste dois blocos do comando mude para o traje, que estão na categoria Aparência. Nossos blocos deverão ficar como mostrados abaixo:
Para configurar os blocos abaixo, clique na setinha de cada comando, deixando a mensagem “Direita” junto ao “traje1”, e a mensagem “Esquerda”, junto ao “traje2”. Agora, basta testar pressionando as setas direita ou esquerda para ver o gatinho andar, e a frase ser mostrada na tela.
Outros comandos importantes desta categoria, são os espere até, pare comando e pare tudo, ainda não mostrados.
O espere até, faz com que seus blocos pausem sua execução, até ocorrer algo no jogo. Depois que isso ocorre, a execução dos comandos volta a acontecer.
O pare comando vai parar todo o conjunto de blocos em que este comando foi inserido.
E por fim, o pare tudo, vai fazer parar todos os blocos, de todos os objetos em nosso jogo. Este bloco é muito usado quando se deseja parar um jogo, depois que o jogador perde o jogo.
Existem outros comandos da categoria Movimento, que são importantes de serem mostrados, envolvendo movimentos de rotação e movimentação em posições de x e y, sendo esses blocos o de vire graus à direita, vire graus à esquerda, vá para x y, vá para e deslize em segundos para x y:
Como funciona cada bloco:
vire graus à direita  esse bloco faz com que seu objeto vire para a direita o número de graus indicados;
vire graus à esquerda  esse comando faz com que seu objeto vire para a esquerda o número de graus indicados;
vá para x y  neste bloco, você deve indicar um número para x e outro para y, e depois destas posições dadas, o seu objeto vai para as indicações dadas;
vá para  neste comando, você deve indicar para onde seu objeto deve ir (como por exemplo, o ponteiro do mouse);
deslize em segundos para x y  neste bloco, você deve indicar um número para x, outro para y, e outro para o tempo em segundo depois destas posições dadas, o seu objeto desliza neste tempo mencionado, indo para as indicações dadas;
Já os comandos a seguir, ainda da categoria Movimento, dizem respeito especificamente às posições x e y de um objeto, além de sua direção, sendo eles os blocos posição x, posição y, direção, mude x por, mude x para, mude y por e mude y para:
Como funciona cada bloco:
posição x  este bloco captura a atual posição x de um objeto;
posição y  este comando captura a atual posição y de um objeto;
posição x  este bloco captura a atual direção de um objeto;
mude x por  neste comando, você deve indicar um valor para x, sendo que este número vai sempre incrementar o último valor da posição x;
mude x para  neste comando, qualquer valor que x possua, será substituído pelo número indicado no bloco para a posição x;
mude y por  neste bloco, você deve indicar um valor para y, sendo que este número vai sempre incrementar o último valor da posição y;
mude y para  neste bloco, qualquer valor que y possua, será substituído pelo número indicado no comando para a posição y;
Há outros comandos importantes desta categoria, que ainda não vimos, e falaremos brevemente sobre cada um deles. De início, temos em Operadores, os 4 sinais das operações básicas na matemática, sendo eles adição, subtração, multiplicação e divisão:
Caso seja necessário realizar alguma conta em seu jogo ou animação criada, você utilizar destes operadores.
Ainda nesta mesma categoria, se caso for necessário realizar outros tipos de cálculos em seu jogo ou animação, temos os blocos resto da divisão por, arredonde, raiz quadrada de 10, e sorteie número entre 1 e 10:
Como funciona cada bloco:
resto da divisão por  ao realizar uma divisão, você pode precisar saber dela apenas o valor de resto, e esse bloco te ajuda exatamente nisso, capturando apenas o valor de resto de uma divisão;
arredonde quando há a necessidade de se trabalhar com números inteiros (que não possua vírgula), você pode indicar um número decimal ou variável numérica neste bloco, que ele vai te retornar apenas o valor inteiro deste número, de forma arredondada;
raiz quadrada de 10  esse bloco serve para você realizar qualquer tipo de cálculo que sai do básico, das 4 operações. Na setinha onde está escrito “raiz quadrada”, ao clicar nela, você tem várias opções, como potência, seno, coseno, tangente, entre outras. E onde esta o número 10, você pode indicar qualquer número ou variável numérica;
sorteie número entre 1 e 10  este bloco serve para sortear um número, a partir de uma faixa de valores. No exemplo acima, o primeiro número é 1 e o segundo 10, então o bloco vai sortear qualquer valor dentro de 1 e 10. Lembrando que os números 1 e 10 podem ser substituídos por qualquer outro número ou variável numérica.
Para finalizar esta categoria, temos alguns blocos que trabalham com textos e números, sendo eles o junte olá mundo, letra 1 de mundo e letras em mundo:
Como funciona cada bloco:
junte olá mundo  esse bloco junta duas mensagens de texto ou variáveis textuais, formando palavras separadas como uma só frase;
letra 1 de mundo  esse bloco mostra a letra, a partir do número e palavra ou variável textual indicada neste comando. Neste exemplo, ele mostra o número 1 e a palavra “mundo”, consequentemente, a letra de retorno será “m”, pois ela é a letra 1 desta palavra. Outro exemplo, seria indicar como número o valor 4 e a palavra “sorvete”, sendo a letra de retorno o “v”, que é a letra 4 desta palavra.
letras em mundo  esse comando retorna o número total de letras que possuí uma palavra ou variável textual. Neste exemplo, ele retornaria o valor 5, pois a palavra “mundo” tem um total de 5 letras. Outro exemplo, baseado na palavra “sorvete”, ele retornaria o número 7, pois essa palavra tem um total de 7 letras.
Há outros comandos importantes da categoria Sensores, que ainda não vimos, e falaremos brevemente sobre cada um deles. Para começar, temos em Sensores os comandos tocando em ?, tocando na cor ? e cor está tocando cor ?:
Como funciona cada bloco:
tocando em ?  esse comando vai fazer um comparativo, verificando se um sprite tocou em outro personagem;
tocando na cor ?  esse comando vai realizar uma comparação, verificando se um sprite tocou em uma cor específica (como mostrado no exemplo, a cor roxa);
cor está tocando cor ?  esse comando vai realizar uma comparação, verificando se uma cor tocou em uma outra cor (como mostrado no exemplo, se a cor lilás tocou na cor amarela).
Além desses blocos, temos dois comandos que manipulam perguntas e respostas dentro do Scratch, sendo eles o pergunte e espere e resposta:
Como funciona cada bloco:
pergunte e espere  nesse bloco, onde há a mensagem “Qual o seu nome?”, você pode digitar qualquer pergunta, que será mostrada ao usuário, assim como vai exibir uma caixa de texto, esperando com que o usuário digite uma resposta;
resposta  já este bloco, vai servir para capturar a resposta digitada, a partir da pergunta feita no bloco anterior, e realizar qualquer tipo de manipulação com esta resposta.
Existem blocos também que verificam e/ou manipulam as posições x e y de um objeto inserido no Scrach, assim como aqueles que realizam comparações de distância ou de toque em teclas. Esses blocos são mouse x, mouse y, posição x de objeto1, distância até, mouse pressionado? e tecla pressionada? :
Como funciona cada bloco:
mouse x este bloco captura a atual posição x do mouse;
mouse y este comando captura a atual posição y do mouse;
posição x de objeto1  este bloco captura tanto a atual posição de x, como a de y, em um determinado objeto (sprite) mencionado;
distância até  neste comando, você indica uma determinada distância entre objetos (sprites), ou entre um objeto e o ponteiro do mouse;
mouse pressionado?  este bloco verifica se o botão do mouse foi pressionado ou não;
tecla pressionada?  este comando verifica se uma determinada tecla do teclado foi pressionada ou não;
Além destes comandos, existem mais dois desta mesma categoria, que servem especificamente para se trabalhar com tempo em um jogo, sendo eles o zere temporizador e temporizador:
Como funciona cada bloco:
zere temporizador  esse comando zera o valor que estiver no temporizador;
temporizador  esse bloco, quando acionado, mostra na tela do jogo um cronômetro, que temporiza o tempo desde o início da execução de um game.
A categoria Caneta, que ainda foi pouco utilizada, possui blocos responsáveis por fazer nosso personagem desenhar na tela. Alguns dos blocos mais simples desta categoria são o abaixe a caneta, levante a caneta, limpe e carimbe:
Como funciona cada bloco:
abaixe a caneta  este comando abaixa a caneta, fazendo um personagem desenhar na tela;
levante a caneta  este bloco levanta a caneta, fazendo com que um personagem não desenhe na tela;
limpe  este comando limpa da tela tudo o que foi desenhado anteriormente;
carimbe  este bloco carimba na tela determinado objeto.
Além desses comandos, existem outros que são importantes para alterar efeitos de tons e cor da caneta, sendo os blocos mude o tom da caneta por, mude o tom da caneta para, mude a cor da caneta para cor, mude a cor da caneta por e mude a cor da caneta para:
Como funciona cada bloco:
mude o tom da caneta por  neste bloco, você deve indicar um valor para o tom da caneta, sendo que este número vai sempre incrementar o último valor do tom da caneta;
mude o tom da caneta para  neste comando, qualquer valor já dado que representa o tom da caneta, será substituído pelo número indicado no bloco para alterar sua tonalidade;
mude a cor da caneta para cor  este comando muda a cor atual da caneta, para outra cor;
mude a cor da caneta por  neste bloco, você deve indicar um valor para a cor da caneta, sendo que este número vai sempre incrementar o último valor da cor da caneta;
mude a cor da caneta para  neste comando, qualquer valor já dado que representa a cor da caneta, será substituído pelo número indicado no bloco para alterar sua cor.
Por fim, além de mudar tons e cores da caneta, é possível alterar seu tamanho, pelos blocos mude o tamanho da caneta por e mude o tamanho da caneta para:
Como funciona cada bloco:
mude o tamanho da caneta por  neste bloco, você deve indicar um valor para o tamanho da caneta, sendo que este número vai sempre incrementar o último valor do tamanho da caneta;
mude o tamanho da caneta para  neste comando, qualquer valor já dado que representa o tamanho da caneta, será substituído pelo número indicado no bloco para alterar seu tamanho

Edição atual tal como às 11h44min de 18 de maio de 2022

Instrução SEMPRE

Como já foi visto antes, é possível criar no Scratch uma ou mais ações que funcionem de maneira contínua, repetindo-se por tempo indeterminado.

Para isso se usa o comando SEMPRE, da categoria Controle.

Qualquer outro bloco que for encaixado dentro do comando sempre será executado até o programa ser parado.

Para isso, vamos fazer o exemplo abaixo:

Exemplo do Tambor

O objetivo será fazer um tambor tocar um som, com o intervalo de tempo de 1 segundo de diferença, além do tambor trocar constantemente de cor, assim como todo esse processo deve ocorrer infinitamente.

Carregue o ator "Drum", do Scratch.


Inicialmente, vamos arrastar o bloco "QUANDO BOTÃO IR FOR CLICADO" e o "SEMPRE", unindo-os, ambos da categoria Controle, como mostrado na imagem abaixo.

Em seguida, arraste para dentro do bloco "SEMPRE", o comando "MUDE 25 AO EFEITO DE COR", que está na Categoria "APARÊNCIA", e altere o parâmetro 25 para 5, como mostra a imagem abaixo (para não ficar tão rápido):

SCRATCHtambor1.png

Teste para ver como funciona!!!

Mas, tambores têm que emitir som, né?

Então, arraste para dentro do bloco "SEMPRE", o comando "TOQUE O SOM 'Low Tom' ATÉ O FIM", que esta na categoria "SOM". E agora, o que aconteceu??

SCRATCHtambor2.png


Por fim, arraste para dentro do bloco "SEMPRE", o comando "MUDE 10 NO EFEITO TOM", que também está na categoria "SOM", conforme a figura abaixo. Ele fará com que o som do tambor mude, com o tempo, tornando a animação mais interessante.

SCRATCHtambor3.png

Instrução SE

Para se criar vários jogos e animações, é importante usar condições.

Para entendermos o uso da condição "Se", faremos uma bola bater em um objeto e quando ela bater, voltar.

Para isso, vamos seguir o exemplo abaixo:

SCRATCHcondSE0.png

Neste exemplo, usamos o bloco "Se bater na borda, volte" para indicar a condição.

Os comandos da bola são iniciados quando for clicado sobre a bola. Ela sempre irá se mover, e se tocar na borda (qualquer borda do palco) ela vai para a direção contrária.

Porém, podemos deixar mais interessante: vamos tentar fazer a bola ricochetear TAMBÉM na cabeça do gato, e não só na borda!

Inicialmente, mude o nome do primeiro sprite para "gato" e o do segundo, para “bola”, e depois sua direção para 180 (para ela ir para baixo, inicialmente).

Agora, vamos incluir o controle "Se (CONDICAO) então" no nosso programa. Puxe o bloco SE na categoria CONTROLE, e coloque na área de edição de scripts.

SCRATCHcondSE1.png

A condição, por sua vez, será o bloco "tocando em", das ferramentas de SENSORES. Escolha no menu o nome do objeto que será tocado (no caso, o gato).

SCRATCHcondSE2.png

Dentro do bloco SE, coloque o que acontece quando a bola tocar o gato, ou seja, acrescente o bloco aponte para a direção.

Isso significa que quando a bola tocar no gato, ela irá mudar sua direção para aquela determinada no bloco de comando (neste caso, 30 graus, mas poderia ser outra).

Acrescente o bloco SEMPRE, para que o teste seja feito o tempo todo, e coloque a condição “SE” dentro do SEMPRE.


E, agora sim!!!!! Conseguimos!!!

PMCsmile.png

Toda vez que a bola bater na borda ou no gato, ela vai ricochetear!!!

Instrução SE-SENÃO

Para entendermos essa condição, vamos fazer uma bola ir para a direção do gol, e se bater nele, dizer “Gol!”.

Caso contrário, a bola apenas continuará movendo-se na tela, o que não tem muita graça.


Inicialmente, faça o cenário do gol na área de palco, e adicione o sprite da bola, para ficar semelhante ao mostrado.

Você tanto pode modificar um cenário de quadra do Scratch, preenchendo toda a trave com uma só cor, ou pode desenhar seu próprio cenário. Fica ao seu critério! (vide instruções no Capítulo 4 - Cenários).

SCRATCHfutebol1.png

Não esqueça de mudar a direção do sprite bola, pra 30 graus, por exemplo, pra que ela suba, na direção do gol.

Em seguida, insira o bloco de EVENTO "QUANDO ESTE ATOR FOR CLICADO", sendo o ator, a Bola, para que clicar nela inicie o programa (como se fosse um chute, em um jogo).

Em seguida, arraste o bloco de MOVIMENTO "MOVA 10 PASSOS", e mude o número de passos para 200, pra que, ao ser clicada, a bola se desloque bastante na direção inicial que foi programada (30 graus).

Se quiser, inclua o bloco "TOQUE O SOM 'POP'", da categoria SOM, para ouvir a bola batendo.

O próximo passo, finalmente, é inserir o bloco "SE-ENTÃO-SENÃO", da categoria CONTROLE, para vermos como ele funciona!

Este bloco testa uma condição. Se esta condição for VERDADEIRA, ele executa o que está dentro do sub-bloco ENTÃO. Se a condição for falsa, vai executar o que está dentro do sub-bloco SENÃO.

A condição que vamos colocar é que o ator/sprite bola toque a trave por dentro (completando o gol).

E como vamos fazer isto???

Simples!!!

Utilizando o bloco SENSOR "TOCANDO NA COR".

Insira este bloco como condição da instrução "SE-ENTÃO-SENÃO", e clique na bolinha de cor para selecionar (usando a ferramenta CONTA-GOTAS) a cor de preenchimento da trave!!!

Desta forma:

SCRATCHinstrucoes2.png
SCRATCHinstrucoes3.png


Prontinho!! PMCsmile.png

Seria possível verificar se a bola entrou no gol também pelas posições X e Y do sprite na tela. Vamos testar isto mais para a frente.


Agora, dentro do bloco "SE-ENTÃO-SENÃO", vamos inserir as ações que deverão ocorrer quando a bola tocar o gol.

Para isto, arraste o bloco (substitua Olá por GOOOLLLL!!!) da Categoria APARÊNCIA. Também arraste o bloco "TOQUE O SOM Miau ATÉ O FIM", da Categoria SOM, trocando o som Miau, pelo som Goal Cheer, do Scratch, como mostrado abaixo: SCRATCHsesenao3.png"DIGA Olá POR 2 seg"

É necessário, após o gol, colocar a bola em uma posição inicial, de novo, para recomeçar o jogo.

Utilize o bloco "VÁ PARA posição aleatória", da categoria MOVIMENTO, para reposicionar a bola em qualquer lugar, ou troque posição aleatória por ponteiro do mouse.

Assim, logo depois do gol e da comemoração, a bola vai para onde o mouse do usuário está posicionado.

E também é MUITO importante, que o bloco de MOVIMENTO "SE TOCAR NA BORDA VOLTE" seja adicionado ao final do código, porque senão, toda hora, quando a bola "escapar" do palco, você vai ter que reposicionar a bola pelas suas coordenadas, X e Y, o que é muito chato!

SCRATCHsesenao1.png


A última coisa a fazer é decidir o que fazer, caso o chute não resulte em Gol!!???

Bom, o natural é mover a bola, né? Então, agora vamos inserir o código para a parte "SENÃO", da instrução.

Se a bola entrar na trave, faz tudo que foi descrito acima. SENÃO, move o ator Bola, 10 passos, com a instrução de MOVIMENTO:

SCRATCHsesenao2.png

Era isto!!!

Gostou???

Nossos programas estão ficando grandes, né??

Instrução REPITA

Às vezes há a necessidade de no Scratch você fazer com que um processo dure um certo número de vezes.

A estrutura de repetição REPITA faz com que as ações, dentro deste bloco, sejam realizadas uma determinada quantidade de vezes.

Para entendermos essa instrução, vamos criar um projeto simples, no qual nosso objetivo será fazer uma menina falar “Olá!” por 10 vezes, durante 1 segundo, para cada fala. Em seguida, depois desse processo, a menina deverá desaparecer da tela.

A primeira coisa a fazer é adicionar um cenário e um ator, no caso, uma Menina (pode também ser a sua foto!!!), ao programa. Veja o exemplo abaixo:

SCRATCHinstrrepita1.png

Em seguida, vamos arrastar os blocos "QUANDO BOTÃO IR FOR CLICADO" e "REPITA 10 VEZES", ambos da categoria Controle, e vamos encaixá-los, como mostra a imagem abaixo. Eu preferi mudar o número de iterações, ou loops, para 5 vezes:

SCRATCHinstrrepita2.png

Na aba "SONS", grave sua própria voz dizendo "Olá!". Esta é a gravação da minha voz, dizendo Olá, de forma simpática! PMCsmile2.png


SCRATCHinstrrepita3.png

Se preferir, mude o nome do som, na caixa de texto. Caso você não faça isto, o nome permanecerá como "recording1" (que significa "gravação1", em português).

Agora, acrescente dentro do bloco "REPITA", o bloco "TOQUE O SOM recording1 ATÉ O FIM". Quando você clicar no botão "IR", a menina deverá repetir seu Olá 5 vezes!

SCRATCHinstrrepita4.png


Depois disto, arraste os blocos "DIGA Olá POR 2 seg" (mude o tempo para 0.5 segundo), da categoria Aparência.

E fora do bloco "REPITA" adicione os blocos "PRÓXIMA FANTASIA", da categoria Aparência, e "DIGA Finalmente!", da categoria Aparência.

Vai ficar assim:

SCRATCHinstrrepita5.png

Agora, teste o seu programa.

O som e o texto "Olá" serão executados 5 vezes, como foi programado, e depois, a mocinha muda de imagem e de texto!

Instrução REPITA ATÉ QUE

Como visto na estrutura repita, às vezes há a necessidade de no Scratch você fazer com que um processo dure determinado número de vezes.

Mas também pode ser necessário que algo seja realizado continuamente, até uma ação acontecer!!! E o momento em que esta ação vai acontecer, por exemplo, o usuário resolver digitar uma tecla, não tem como ser previsto ou determinado, antecipadamente.

Por esta razão a estrutura de repetição "REPITA ATÉ QUE" é necessária!!! Ela faz com que as ações dentro deste bloco sejam interrompidas somente quando alguma ação, determinada, for realizada.

Para entendermos a diferença entre o "REPITA x VEZES" e o "REPITA ATÉ QUE" vamos usar o mesmo exemplo, da seção anterior.

Troque o bloco de Controle "REPITA 5 VEZES", do programa da menina, pelo bloco "REPITA ATÉ QUE".

Note que este tipo de bloco tem uma CONDIÇÃO, para ser executado! O anterior era condicionado a um número fixo de vezes. Já este terá que usar um bloco do tipo que existe nas Categorias "SENSORES" e "OPERADORES".

SCRATCHinstrptate.png

Vamos escolher o bloco "TECLA ESPAÇO PRESSIONADA?", da categoria SENSORES, e vamos encaixá-lo no campo de condição, do bloco "REPITA ATÉ QUE".

Pra que o programa não trave tanto (o que sempre acontece quando usamos muitos eventos), retire o bloco "DIGA OLÁ", e deixe só o de SOM.

Vai ficar assim:

SCRATCHinstrptate2.png

Quando você clicar no Botão IR, a menina começa a repetir o áudio "Olá" até que você pressione a tecla de Espaço. Note que pode ser que você precise pressionar várias vezes, até o Scratch perceber!!! PMCsmile2.png

Outras instruções

Outras instruções importantes da categoria CONTROLE, como "ESPERE ATÉ QUE" e "PARE TODOS" ainda não foram mostradas.

  • "ESPERE ATÉ QUE" - faz com que seus blocos pausem sua execução, até ocorrer algo no jogo. Depois que isso ocorre, a execução dos comandos volta a acontecer.
  • "PARE TODOS" - vai fazer parar todos os blocos, de todos os objetos em nosso jogo. Este bloco é muito usado quando se deseja parar um jogo, depois que o jogador perde o jogo.



<< AULA 4 - Criando e alterando cenários AULA 5 - Trabalhando com instruções AULA 6 - Usando Variáveis >>

<< Página do Curso de Scratch