Por:Blocos

Blocos são peças estilo quebra-cabeça que são usadas para criar código no Scratch. Os blocos conectam-se uns aos outros verticalmente como LEGO, onde cada tipo de dado (chapéu, pilha, repórter, booleano, ou final) tem sua própria forma e um buraco de formato especial onde ele pode ser encaixado, o que previne erros de sintaxe. Séries de blocos conectados se chamam scripts.

Existem dez categorias de blocos: Movimento, Aparência, Som, Lista, Eventos, Controle, Sensores, Operadores, Variáveis, e Meus Blocos. Apenas nove destes aparecem na paleta de blocos.

No total, tem sete blocos chapéu, cinco blocos C, trinta e um blocos repórter, treze blocos booleano, dois blocos finais e cinquenta e nove blocos de empilhar.

Formatos de Bloco
Existem seis tipos diferentes de formas de bloco: chapéu, pilha, booleano, repórter, C e final.

Blocos Chapéu


Blocos chapéu são os blocos que começam scripts. Eles têm uma parte redonda no topo e um encaixe em baixo para que você só consiga colocar blocos em baixo deles. Existem 8 blocos chapéu no editor do Scratch, seis na categoria Eventos, um na categoria Controle e um na categoria Meus Blocos (se você tiver criado um bloco customizado).

Blocos de Empilhar


Blocos de empilhar (ou blocos de pilha) são blocos que comandam ações. Eles têm um buraco no topo e um encaixe em baixo para que você possa encaixar blocos em cima e em baixo dele. Esistem 77 blocos de pilha o tipo mais comum de bloco.

Blocos Booleano


Blocos booleano são condições eles podem ter o valor verdadeiro ou falso. Por exemplo, se você perguntar a alguém: "2 + 2 é igual a 4?", ele teria de responder com "sim" ( verdadeiro) ou "não" (falso). Existem 13 destes blocos de formato hexagonal.

Blocos Repórter


Blocos repórter carregam valores. Eles podem conter números e strings. É como você perguntar a alguém "Quanto é 2 + 2", e ele responderia "4". Esses valores podem também ser variáveis, como "Qual é a sua idade?", e ele pode responder "15", ou "Qual é o seu nome?", e ele tem milhões de respostas possíveis. Existem 37 destes blocos redondos sem contar o número teoricamente infinito de repórteres que você pode criar usando variáveis e listas.

Blocos C


Blocos C são blocos que têm formato parecido com a letra "C". Estes blocos encapsulam outros blocos e podem repetí-los ou executá-los quando uma condição for cumprida. Existem cinco blocos C, todos na categoria Controle. Blocos C podem ou não ter encaixe.

Blocos Finais


Blocos finais (ou blocos tampa) são blocos que finalizam scripts. Eles têm um buraco no topo mas não têm encaixe na parte de baixo para que você não possa encaixar blocos em baixo deles. Existem dois blocos finais, ambos na categoria Controle.

Lista de blocos
Existem 119 blocos no Scratch 3.0 (não incluindo extensões):

Blocos de movimento
Blocos de movimento são os blocos que controlam o movimento de um ator. Existem 17 blocos de movimento no Scratch 3.0.

Scratch 3.0 tem os seguintes 15 blocos de movimento de empilhar:


 * mova passos :: motion  Move o ator um certo número de passos na direção a que ele está olhado.
 * gire ↩️ graus :: motion  Gira o ator em sentido horário em um certo ângulo.
 * gire ↪️ graus :: motion  Gira o ator em sentido anti-horário em um certo ângulo.
 * aponte para a direção :: motion  Aponta o ator na direção escolhida.
 * aponte para [ v] :: motion Aponta o ator na direção do mouse ou de outro ator.
 * vá para x: y: :: motion Transporta o ator para as posições X e Y especificadas.
 * vá para [ v] :: motion Transporta o ator para o mouse, uma posição aleatória, ou até outro ator.
 * deslize por segs. até x: y: :: motion  Faz o ator deslizar até a posição levando a quantidade de tempo especificada para chegar lá.
 * deslize por segs. até [ v] :: motion</sb>  Faz o ator deslizar até a posição do mouse, uma posição aleatória, ou outro ator, levando a quantidade de tempo especificada para chegar lá.
 * adicione a x :: motion</sb>  Adiciona o número dado à posição X do ator.
 * mude x para :: motion</sb>  Transporta o ator à posição X especificada.
 * adicione a y :: motion</sb>  Adiciona o número dado à posição Y do ator.
 * mude y para :: motion</sb>  Transporta o ator à posição Y especificada.
 * se tocar na borda, volte :: motion</sb> Se o ator estiver tocando na borda, sua direção é espelhada.
 * defina o estilo de rotação para [ v] :: motion</sb> Muda o estilo de rotação do ator.

O Scratch 3.0 tem três blocos repórter de Movimento:


 * (posição x :: motion)</sb> A posição X do ator.
 * (posição y :: motion)</sb> A posição Y do ator.
 * (direção :: motion)</sb> A direção para qual o ator está olhando.

Blocos de aparência
Blocos de aparência são os blocos que controlam a aparência de um ator. Existem 23 blocos de aparência no Scratch 3.0. Três dos 19 blocos de aparência para atores têm uma duplicata para o palco.

Scratch 3.0 tem os seguintes 18 blocos de aparência de empilhar:


 * diga [] por segundos :: looks</sb>  Um balão de fala aparece em cima do seu ator e desaparece depois de um tempo.
 * diga []::looks</sb> Um balão de fala aparece em cima do seu ator.
 * pense [] por segundos :: looks</sb>  Um balão de pensamento aparece em cima do seu ator e desaparece depois de um tempo.
 * pense [] :: looks</sb> Um balão de pensamento aparece em cima do seu ator.
 * mostre :: looks</sb> Faz o ator aparecer.
 * esconda :: looks</sb> Faz o ator desaparecer.
 * <sb>mude para a fantasia [ v] :: looks</sb> e <sb>mude para o cenário [ v] :: looks</sb> Muda a fantasia/cenário do ator/palco para o que foi selecionado.
 * <sb>mude para o cenário [ v] e espere :: looks</sb> Mesma coisa que o bloco "Mude para o Cenário ", mas ele espera que todos os blocos "Quando o Cenário Mudar para " terminem de executar para continuar o script. (Palco apenas)
 * <sb>próxima fantasia :: looks</sb> e <sb>próximo cenário :: looks</sb> Muda a fantasia/cenário do ator/palco para o próximo na lista.
 * <sb>mude ao efeito [ v] :: looks</sb>  Adiciona o valor especificado ao efeito selecionado.
 * <sb>defina o efeito [ v] como :: looks</sb>  Muda o efeito selecionado para o valor especificado.
 * <sb>remova os efeitos gráficos :: looks</sb> Reseta todos os efeitos do ator.
 * <sb>mude no tamanho :: looks</sb>  Adiciona o valor especificado ao tamanho do ator.
 * <sb>defina o tamanho como % :: looks</sb> Muda o tamanho do ator para a porcentagem selecionada.
 * <sb>vá para a camada [ v] :: looks</sb> Coloca um ator na frente ou atrás de todos os outros.
 * <sb>vá para [ v] camadas :: looks</sb>  Trás o ator para frente ou para trás do número especificado de camadas.

O Scratch 3.0 tem três blocos repórter de Aparência:


 * <sb>(fantasia [ v] :: looks)</sb> e <sb>(cenário [ v] :: looks)</sb> O número ou nome da fantasia/cenário atual do ator/palco na lista.
 * <sb>(tamanho :: looks)</sb> O tamanho do ator.

Sound blocks
Sound blocks are the blocks that control sound and MIDI functions. There are 16 Sound blocks in Scratch 3.0. The note blocks in 3.0 are considered an add-on, not one of the standard categories.

Scratch 3.0 has the following eight Sound Stack blocks:

Scratch 3.0 has the following Sound Reporter block:
 * <sb>start sound [ v]</sb> Plays a sound without pausing the script.
 * <sb>play sound [ v] until done</sb> Plays a sound and pauses the script until it finishes.
 * <sb>stop all sounds</sb> Stops all playing sounds.
 * <sb>change volume by </sb> Changes the volume by the amount.
 * <sb>set volume to %</sb> Sets the volume to the amount.
 * <sb>change [pitch v] effect by </sb> Change the pan left/right or pitch by the amount.
 * <sb>set [pan left/right v] effect to </sb> Set the pan left/right or pitch to the amount.
 * <sb>clear sound effects</sb> Clears any sound effects currently in place.


 * <sb>(volume)</sb> The volume.

Blocos de variáveis
Variables blocks are the blocks that hold values and strings. There are 5 Variables blocks in Scratch 3.0.

Scratch 3.0 has the following four Variables Stack blocks:


 * <sb>set [ v] to </sb> Sets the specified variable to the amount.
 * <sb>change [ v] by </sb> Changes the specified variable by the amount.
 * <sb>show variable [ v]</sb> Shows the variable's Stage Monitor.
 * <sb>hide variable [ v]</sb> Hides the variable's Stage Monitor.

Scratch 3.0 has the following Variables Reporter block:


 * <sb>(variable)</sb> The variable's value.

Blocos de lista
List blocks are the blocks that manage lists. They are stored in the Data category. There are 11 List blocks in Scratch 3.0.

Scratch 3.0 has the following six List Stack blocks:


 * <sb>add [] to [ v]</sb> Adds an item to the list (the item goes at the bottom of the list of items) with the specified content in it.
 * <sb>delete of [ v]</sb>  Deletes the item of the list.
 * <sb>delete all of [ v]</sb> Deletes all items of the list.
 * <sb>insert [] at of [ v]</sb>  Adds an item to the list (the item goes where you specify in the list of items) with the specified content in it.
 * <sb>replace item of [ v] with []</sb>  Replaces the item's content with the specified content.
 * <sb>show list [ v]</sb> Shows a list.
 * <sb>hide list [ v]</sb> Hides a list.

Scratch 3.0 has the following 4 List Reporter blocks:

Scratch 3.0 has the following List Boolean block:
 * <sb>(list::list)</sb> The list's value.
 * <sb>(item of [ v])</sb>  The item's value.
 * <sb>(length of [ v])</sb> How many items there are in the specified list.
 * <sb>(item # of [] in [ v])</sb> Reports the index in a list where an item first appears.


 * <sb><[ v] contains []?></sb> The condition for checking if an item's content is the specified text.

Blocos de eventos
Event blocks are blocks that control events and the triggering of scripts. There are 8 Event blocks in Scratch 3.0.

Scratch 3.0 has the following six Event Hat Blocks:


 * <sb>when green flag clicked</sb> When the flag is clicked, the script activates.
 * <sb>when [ v] key pressed</sb> When the specified key is pressed, the script activates. The event will only be triggered again after the event is released.
 * <sb>when this sprite clicked</sb> When the sprite is clicked, the script activates.
 * <sb>when backdrop switches to [ v]</sb> When the backdrop switches to the one chosen, the script activates.
 * <sb>when [ v] > </sb> When the first value is greater than the second value, the script activates.
 * <sb>when I receive [ v]</sb> When the broadcast is received, the script activates.

Scratch 3.0 has the following two Event Stack blocks:


 * <sb>broadcast [ v]</sb> Sends a broadcast throughout the Scratch program, activating When I Receive  blocks that are set to that broadcast.
 * <sb>broadcast [ v] and wait</sb> Like the Broadcast  block, but pauses the script until all scripts activated by the broadcast are completed.

Blocos de controle
Control blocks are the blocks that control scripts. There are 11 Control blocks in Scratch 3.0.

Scratch 3.0 has the following one Control Hat block:


 * <sb>when I start as a clone</sb> (sprites only)  This hat block is triggered whenever a clone is created, and will only be run by that clone.

Scratch 3.0 has the following three Control Stack blocks:


 * <sb>wait secs</sb>  Pauses the script for the amount of time.
 * <sb>wait until <></sb> Pauses the script until the condition is true.
 * <sb>create clone of [ v]</sb> Creates the specified clone.

Scratch 3.0 has the following five Control C blocks:

else ]]&#x2514; Checks the condition so that if the condition is true, the blocks inside the first C will activate and if the condition is false, the blocks inside the second C will activate.
 * <sb>repeat </sb> A loop that repeats the specified amount of times.
 * <sb>forever</sb> A loop that will never end unless the Stop Sign is pressed.
 * <sb>if <> then</sb> Checks the condition so that if the condition is true, the blocks inside it will activate.
 * [[If Then, Else (block)| if <> then
 * <sb>repeat until <></sb> A loop that will stop once the condition is true.

Scratch 3.0 has the following two Control Cap blocks:


 * <sb>stop [ v]</sb> Stops the scripts chosen through the drop-down menu. Can also be a stack block when "other scripts in this sprite" is chosen.
 * <sb>delete this clone</sb> (sprites only)  Deletes a clone.

Blocos sensores
Sensing blocks are the blocks that detect things. There are 21 Sensing blocks in Scratch 3.0.

Scratch 3.0 has the following three Sensing Stack blocks:


 * <sb>ask [] and wait</sb> An input box appears  you type the value in and it stores the value in the <sb>(answer)</sb> variable.
 * <sb>reset timer</sb> Resets the timer.
 * <sb>set drag mode [ v]</sb> Sets the sprite to draggable or not draggable.

Scratch 2.0 has the following two Sensing Boolean blocks:


 * <sb><key [ v] pressed?></sb> The condition for checking if the specified key is being pressed.
 * <sb><mouse down?></sb> The condition for checking if the mouse is down.

Scratch 2.0 has the following ten Sensing Reporter blocks:


 * <sb>(distance to [ v])</sb> The distance from the sprite to the mouse-pointer or another sprite.
 * <sb>(answer)</sb> The most recent input with the Ask  And Wait block.
 * <sb>(mouse x)</sb> The mouse-pointer's X position.
 * <sb>(mouse y)</sb> The  mouse-pointer's Y position.
 * <sb>(loudness)</sb> How loud the noise is that the microphone is sensing.
 * <sb>(timer)</sb> How much time has passed since the Scratch program was opened or the timer reset.
 * <sb>([ v] of [ v])</sb> The X position, Y position, direction, costume, size or volume of the Stage or a sprite.
 * <sb>(current [ v])</sb> The specified time unit selected.
 * <sb>(days since 2000)</sb> The number of days since 2000.
 * <sb>(username)</sb> The username of a user.

Blocos operadores
Operators blocks are the blocks that perform math functions and string handling. There are 18 Operators blocks in Scratch 3.0.

Scratch 3.0 has the following seven Operators Boolean blocks:


 * <sb><[] < []></sb> The condition for checking if a value is less than the other.
 * <sb><[] = []></sb> The condition for checking if two values are equal.
 * <sb><[] > []></sb> The condition for checking if a value is greater than the other.
 * <sb><<> and <>></sb> True if both conditions are true.
 * <sb><<> or <>></sb> True if either condition is true.
 * <sb><not <>></sb> Makes the condition checked if it is false, not true, or true, not false.
 * <sb><[] contains []?></sb> Checks if the first parameter's text contains the second parameter's text if it does, the block returns true.

Scratch 3.0 has the following eleven Operators Reporter blocks:


 * <sb>( + )</sb> The value of the addition.
 * <sb>( - )</sb> The value of the subtraction.
 * <sb>( * )</sb> The value of the multiplication.
 * <sb>( / )</sb> The value of the division.
 * <sb>(pick random to )</sb>  Picks a random number between the two limits.
 * <sb>(join [] [])</sb> The two values put right next to each other.
 * <sb>(letter of [])</sb>  The specified character of the value.
 * <sb>(length of [])</sb> The length of the value.
 * <sb>( mod )</sb> The remainder of the division.
 * <sb>(round )</sb> Rounds the value to the nearest whole number.
 * <sb>([abs v] of )</sb> The absolute value (abs), square root (sqrt), sine (sin), cosine (cos), tangent (tan), asine (asin), acosine (acos), atangent (atan), natural logarithm (ln), logarithm (log), exponential function (e^), or base 10 exponential function (10^) of a specified value.

Right-clicking some of the blocks will yield more choices of its type.

Meus blocos
My blocks are user-made custom blocks. There are 2 unique kinds of My blocks in Scratch 3.0.

Scratch 3.0 has the following My Blocks Hat block:
 * <sb>define block</sb> Defines a custom block.

Scratch 3.0 has the following My Blocks Stack block:
 * <sb>custom block::custom</sb> A custom block.

Plugin ScratchBlocks
O plugin ScratchBlocks lhe permite escrever blocos e scripts nos fóruns do Scratch e na Wiki do Scratch, além de outros websites que contém o código JavaScript necessário. Foi escrito pelo Scratcher blob8108.

Editando as cores dos blocos


No editor online do Scratch 2.0, você podia editar as cores dos blocos clicando no menu Editar com a tecla Shift pressionada. Fazendo isso, um menu aparecia com 3 sliders HSL e ferramentas para modificar as cores de blocos de uma categoria de bloco. Cores personalizadas podiam ser salvas para o seu computador e carregadas.

Em outras linguagens de programação
O Scratch é uma das primeiras linguagens a usar blocos, e inspirou outras a adotar a ideia. Modificações do Scratch contêm muito mais blocos que o Scratch não possui. O MIT, que criou o Scratch, criou também outras linguagens usando blocos, como o MIT App Inventor. Stencyl é uma linguagem profissional que oferece um editor baseado em blocos para a programação de jogos e aplicativos. Scratch Jr também usa blocos que são mais fáceis de crianças mais novas entenderem.

Veja também

 * Editar as Cores dos Blocos