Lógica Básica No Scratch - Scratch Brasil (Tutorial 5)

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 19

Material reorganizado e adaptado por:

Sullen Rodolfo Martinelli


Disponibilizado em:
www.scratchbrasil.net.br
Material original criado por:
Vitor de Carvalho Melo Lopes e Jucimar de Souza Lima Junior
Disponibilizado em:
www.originaldesigner.com.br

Neste tutorial vamos ver alguns recursos de lgica, importantes para serem usados na criao
de jogos e animaes no Scratch.
Mas o que lgica? Lgica a tcnica de encadear pensamentos para atingir determinado
objetivo, de forma rpida e eficiente.
A partir disso, para cada recurso de lgica aprendido, sero feitos vrios exemplos de projetos
no Scratch, para fixar melhor este contedo.
Alm disso, ser visto sobre todas as categoriais e qual a funo de cada uma delas.

J foi visto que temos uma categoria no Scratch chamada Variveis. Mas voc sabe o que
significa varivel? Varivel um local reservado na memria do computador, que pode armazenar
qualquer valor do conjunto ou conjunto de valores.
Para entender melhor isso, veja a imagem abaixo. Ela mostra que ao voc digitar no teclado a
letra A, a CPU manda isso para a memria. Na memria, onde fica esse espao reservado, que
armazena um valor. Sendo que em seguida, esse valor mostrado no monitor.

O exemplo s para ilustrar o que significa varivel, e como ela vai funcionar no Scratch.
Vale lembrar que embora uma varivel possa assumir diferentes valores, ela s pode armazenar um
valor a cada instante.
No Scratch, para se criar variveis, acesse a categoria
Variveis, e clique no boto criar uma varivel ou criar uma
lista. Veja na imagem ao lado.

Depois de clicado em um dos botes, vai ser aberto uma tela que vai pedir para voc dar um
nome a sua varivel, como mostrado ao lado.
Alm disso, voc dever selecionar se ela vai ser uma
varivel apenas de um nico componente do jogo, ou
responsvel por todos os objetos do jogo.

Assim como na matemtica, haver a necessidade no Scratch de comparar valores.


Operadores relacionais servem para comparar qualquer tipo de valor. No Scratch, os operadores
relacionais so apenas 3, sendo acessados na categoria Operadores:

Esses operadores mostrados so na ordem, os de menor (<), igual (=) e maior (>). possvel
fazer com eles comparaes com variveis ou nmeros, como mostrados abaixo:

Alm dos operadores relacionais, existem os operadores lgicos, no Scratch. Os operadores


lgicos tambm servem para comparar qualquer tipo de valor. No Scratch, os operadores lgicos
tambm so 3, sendo acessados atravs da categoria Operadores:

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 No tenho um celular, ao afirmar isso, a palavra no comprova que eu
no possuo um celular.

Assim como no caso dos operadores relacionais, os operadores lgicos mostrados so o (e), (ou)
e (no). possvel fazer com eles, comparaes com variveis ou nmeros, como mostrados abaixo:

Para se criar vrios jogos e animaes, importante usar


condies. Para entendermos o uso da condio 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 cabea 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 direo para 180 (para ela ir para baixo).
Os comandos da bola so 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
direo contrria.
Puxe o bloco se na categoria controle e
coloque na rea de edio 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).

Dentro do bloco se, coloque o que


acontece quando a bola tocar o gato, ou seja,
acrescente o bloco aponte para a direo. Isso
significa que quando a bola tocar no gato, ela ir
mudar sua direo para aquela determinada no
bloco de comando.
Escolha a direo (0) cima, pois aps
bater no gato a bola deve subir.

Acrescente o bloco sempre, para que o


teste seja feito o tempo todo, e coloque a
condio Se dentro do sempre.
Para finalizar, acrescente o controle para o
incio da execuo do script. Neste caso foi usado o
quando bandeira verde clicado.

Para testar esse projeto, clique sobre a


caso queira par-lo, clique sobre o

Agora vamos usar o teste completo: Se/Seno. Para


entendermos essa condio, vamos fazer uma bola ir para a
direo do gol, e se bater nele, dizer Gol!. Caso contrrio, a
bola apenas continuar movendo-se na tela.
Inicialmente faa o desenho do gol na rea de palco, e
adicione o sprite de uma bola para ficar semelhante ao mostrado.

,e

Primeiro mude a direo da bola para 0, para ela


ir na direo 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 edio o bloco Se /
Seno que fica na categoria Controle, como
mostrado ao lado. Depois coloque no espao 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.
Com isso, voc dever clicar no fundo do gol, que possu uma
cor cinza claro, deixando o quadradinho deste bloco tambm na cor
cinza claro, como representado nos processos ao lado.
Ainda dentro do bloco se, coloque a ao 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 seno o comando mova, para
que a bola continue andando caso ela no
toque no gol, como mostrado ao lado.
Coloque os comandos Se/Seno
dentro do bloco sempre, para que este
teste seja feito o tempo todo.

Por fim, coloque no comeo destes comandos, o bloco


quando bola clicada. Isso far com que a bola ande quando for
clicada com o mouse. Seus comandos ficaro semelhantes ao
mostrado ao lado.

Como j foi visto antes, possvel criar no Scratch uma ou mais aes que funcionem de maneira
contnua, 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:
O objetivo ser fazer um tambor tocar um
som, com o intervalo de tempo de 1 segundo de
diferena, alm 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.

Em seguida, arraste para dentro do


bloco sempre, o comando mude o efeito cor
por 25, que esta na categoria Aparncia,
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 de visto as estruturas sempre e se, existe tambm um bloco no Scratch que a
juno de ambos. O comando sempre se a juno destes dois blocos, e tem por funo verificar
constantemente, se uma condio verdadeira ou no.
Para isso, vamos criar um pequeno
conjunto de blocos com o seguinte objetivo:
Aps habilitar a bandeira verde, faa com que
seja

verificado

se

tecla

espao

foi

pressionada, e sempre que ela for apertada,


far o gato mover 10 passos. Alm disso, caso
ele encoste na borda, dever voltar.

De incio, arraste os blocos quando


bandeira verde clicado e sempre se, ambos
da categoria Controle, e encaixe-os como
mostrado ao lado.
Depois, arraste o bloco tecla espao
pressionada?, da categoria Sensores, para
frente da repetio do sempre se, como
mostra a imagem ao lado.
Em seguida, encaixe os blocos mova
10 passos e se tocar na borda, volte, que
esto na categoria Movimento, e coloqueos dentro do sempre se, como indica a
figura ao lado.

e depois pressione a tecla espao do teclado.

Para testar esse projeto, clique sobre a

Perceba que os comandos sempre sero executados, se este tecla for apertada.

s vezes h a necessidade de no Scratch voc fazer com


que um processo dure um certo nmero de vezes. A estrutura de
repetio repita faz com que as aes, 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. Porm, depois desse
processo, a menina dever desaparecer da tela.
De incio, vamos arrastar os blocos quando
bandeira

verde

clicado

repita,

ambos

da

categoria Controle, e vamos encaix-los como


mostra a imagem ao lado.

Em seguida, arraste os blocos diga Ol!


por 2 segundos e desaparea, ambos da
categoria Aparncia.
O comando que mostrar a fala da
menina dever estar dentro do bloco repita, e o
desaparea depois do comando de repetio,
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 nmero 2. Ele ficar selecionado, e com
isso voc pode digitar o nmero 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 nmero de vezes. Mas tambm pode ser necessrio que algo seja
realizado continuamente, at uma ao acontecer. Para isso, usa-se a estrutura de repetio repita
at, que faz com que as aes dentro deste bloco, sejam interrompidas quando alguma ao for feita.
Para melhor entendimento, vamos
usar o mesmo exemplo apresentado na
explicao do bloco sempre se. Mas
agora,

vamos

eliminar

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 espao do teclado.

Observe que desta vez, com o repita at, o programa j comea com o gato se movimentando de
um lado para outro, e s para quando a tecla espao for pressionada. Porm, anteriormente, com o
sempre se, o programa fazia o gato se movimentar sempre que a tecla espao 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 ao, 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 direo, e ser exibida na tela Voc est
andando para a direita. Caso seja pressionada a tecla para a
esquerda, o gato anda para essa direo, 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:

Aps encaixado este bloco, no primeiro


anuncie para todos, clique sobre a setinha que
existe neste bloco, e sem seguida, na opo
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 chamla de Direita. Aps digitado Direita, basta dar ok.

Agora, no segundo bloco de comandos


do gato, tambm encaixamos um anuncie para
todos. Clique tambm sobre a setinha que
existe neste bloco, e sem seguida, na opo
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 chamla de Esquerda. Aps 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 esto na categoria
Controle. Em seguida, arraste dois blocos do comando mude para o traje, que esto na categoria
Aparncia. Nossos blocos devero 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, so os espere at, pare comando e pare tudo,
ainda no mostrados.

O espere at, faz com que seus blocos pausem sua execuo, at ocorrer algo no jogo.
Depois que isso ocorre, a execuo 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 so importantes de serem mostrados,


envolvendo movimentos de rotao e movimentao em posies 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 nmero de graus
indicados;
vire graus esquerda esse comando faz com que seu objeto vire para a esquerda o
nmero de graus indicados;
v para x y neste bloco, voc deve indicar um nmero para x e outro para y, e depois
destas posies dadas, o seu objeto vai para as indicaes 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 nmero para x, outro para
y, e outro para o tempo em segundo depois destas posies dadas, o seu objeto desliza neste
tempo mencionado, indo para as indicaes dadas;
J os comandos a seguir, ainda da categoria Movimento, dizem respeito especificamente s
posies x e y de um objeto, alm de sua direo, sendo eles os blocos posio x, posio y,
direo, mude x por, mude x para, mude y por e mude y para:

Como funciona cada bloco:


posio x este bloco captura a atual posio x de um objeto;
posio y este comando captura a atual posio y de um objeto;
posio x este bloco captura a atual direo de um objeto;
mude x por neste comando, voc deve indicar um valor para x, sendo que este nmero vai
sempre incrementar o ltimo valor da posio x;
mude x para neste comando, qualquer valor que x possua, ser substitudo pelo nmero
indicado no bloco para a posio x;
mude y por neste bloco, voc deve indicar um valor para y, sendo que este nmero vai
sempre incrementar o ltimo valor da posio y;
mude y para neste bloco, qualquer valor que y possua, ser substitudo pelo nmero
indicado no comando para a posio y;

H outros comandos importantes desta categoria, que ainda no vimos, e falaremos


brevemente sobre cada um deles. De incio, temos em Operadores, os 4 sinais das operaes
bsicas na matemtica, sendo eles adio, subtrao, multiplicao e diviso:

Caso seja necessrio realizar alguma conta em seu jogo ou animao criada, voc utilizar
destes operadores.
Ainda nesta mesma categoria, se caso for necessrio realizar outros tipos de clculos em seu
jogo ou animao, temos os blocos resto da diviso por, arredonde, raiz quadrada de 10, e sorteie
nmero entre 1 e 10:

Como funciona cada bloco:


resto da diviso por ao realizar uma diviso, 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 diviso;
arredonde quando h a necessidade de se trabalhar com nmeros inteiros (que no possua
vrgula), voc pode indicar um nmero decimal ou varivel numrica neste bloco, que ele vai te
retornar apenas o valor inteiro deste nmero, de forma arredondada;
raiz quadrada de 10 esse bloco serve para voc realizar qualquer tipo de clculo que sai do
bsico, das 4 operaes. Na setinha onde est escrito raiz quadrada, ao clicar nela, voc tem
vrias opes, como potncia, seno, coseno, tangente, entre outras. E onde esta o nmero 10, voc
pode indicar qualquer nmero ou varivel numrica;
sorteie nmero entre 1 e 10 este bloco serve para sortear um nmero, a partir de uma faixa
de valores. No exemplo acima, o primeiro nmero 1 e o segundo 10, ento o bloco vai sortear
qualquer valor dentro de 1 e 10. Lembrando que os nmeros 1 e 10 podem ser substitudos por
qualquer outro nmero ou varivel numrica.
Para finalizar esta categoria, temos alguns blocos que trabalham com textos e nmeros,
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 variveis textuais, formando
palavras separadas como uma s frase;
letra 1 de mundo esse bloco mostra a letra, a partir do nmero e palavra ou varivel textual
indicada neste comando. Neste exemplo, ele mostra o nmero 1 e a palavra mundo,
consequentemente, a letra de retorno ser m, pois ela a letra 1 desta palavra. Outro exemplo,
seria indicar como nmero 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 nmero total de letras que possu uma palavra
ou varivel 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 nmero 7, pois essa palavra
tem um total de 7 letras.

H outros comandos importantes da categoria Sensores, que ainda no vimos, e falaremos


brevemente sobre cada um deles. Para comear, 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 comparao, verificando se um sprite
tocou em uma cor especfica (como mostrado no exemplo, a cor roxa);
cor est tocando cor ? esse comando vai realizar uma comparao, verificando se uma cor
tocou em uma outra cor (como mostrado no exemplo, se a cor lils tocou na cor amarela).
Alm 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 usurio, assim como vai exibir uma caixa de texto,
esperando com que o usurio 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 manipulao com esta resposta.
Existem blocos tambm que verificam e/ou manipulam as posies x e y de um objeto
inserido no Scrach, assim como aqueles que realizam comparaes de distncia ou de toque em
teclas. Esses blocos so mouse x, mouse y, posio x de objeto1, distncia at, mouse
pressionado? e tecla pressionada? :

Como funciona cada bloco:


mouse x este bloco captura a atual posio x do mouse;

mouse y este comando captura a atual posio y do mouse;


posio x de objeto1 este bloco captura tanto a atual posio de x, como a de y, em um
determinado objeto (sprite) mencionado;
distncia at neste comando, voc indica uma determinada distncia entre objetos
(sprites), ou entre um objeto e o ponteiro do mouse;
mouse pressionado? este bloco verifica se o boto do mouse foi pressionado ou no;
tecla pressionada? este comando verifica se uma determinada tecla do teclado foi
pressionada ou no;
Alm 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 cronmetro, que
temporiza o tempo desde o incio da execuo de um game.

A categoria Caneta, que ainda foi pouco utilizada, possui blocos responsveis por fazer nosso
personagem desenhar na tela. Alguns dos blocos mais simples desta categoria so 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 no
desenhe na tela;
limpe este comando limpa da tela tudo o que foi desenhado anteriormente;
carimbe este bloco carimba na tela determinado objeto.
Alm desses comandos, existem outros que so 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 nmero 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 substitudo pelo nmero 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 nmero 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 substitudo pelo nmero indicado no bloco para alterar sua cor.
Por fim, alm de mudar tons e cores da caneta, possvel 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 nmero 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 substitudo pelo nmero indicado no bloco para alterar seu tamanho.

Você também pode gostar