Capturando eventos de click no Scratch

Capturando eventos de click no Scratch

Estava estudando algumas funcionalidades do Scratch. Por isso, resolvi criar um jogo baseado no Fruit Ninja para testar meus conhecimentos. Nele, teremos alguns balões voando pela tela e, quando o jogador clicar nos balões, eles estouram.

Vamos criar um novo projeto no Scratch. Então vamos adicionar nosso ator:

Bacana! Já temos nosso balão na tela. Mas, quando iniciamos o jogo, ele não está fazendo nada! Ele fica parado nesse canto da tela.

Quando o jogo começar, o balão tem que estar em baixo na tela, logo, vamos falar para o nosso ator, ir para a posição 0 em X e -400 em Y.

Legal! Nosso balão já começa na posição inferior da tela e lá se mantém. Não é isso que queremos. O que nós queremos é que nosso balão deslize de uma posição para outra da tela.

Logo, vamos falar para o nosso ator para que, quando o jogo começar, ele vá para a posição inicial e deslize até a posição 300 em Y por dois segundos:

Nosso balão já está deslizando pela tela, contudo, temos alguns problemas. Ele está sempre surgindo no mesmo lugar e para quando chega ao final na tela. Bem, nós podemos falar para ele sempre repetir esses comandos. Dessa forma, ele sempre que ele chegar ao final da tela, voltará ao começo.

Resolvemos um problema. Mas ainda temos que fazer o balão surgir em outras posições da tela. Atualmente, nosso balão aparece apenas no centro da tela, o que nós queremos é falar para ele aparecer em qualquer posição aleatória do eixo x. Por exemplo, entre a posição -220 e 220:

Bacana! Agora nosso balão começa sempre em um ponto diferente da tela. Porém, veja que ele não segue em linha reta. Ele sempre começa em um ponto, mas vai sempre para o mesmo ponto em x.

Isso acontece porque, quando pedimos para o nosso ator deslizar pela tela, falamos para ele ir para a posição 0 no eixo X. Não queremos que o nosso balão faça essas mudanças de percurso. Então, vamos falar para o nosso ator manter sua posição X.

Show! Nosso balão está seguindo uma linha reta agora e sempre aparece na tela em uma posição aleatória. Agora, temos que colocar o comportamento para estourá-los.

Estourando os balões

No nosso jogo, quando um balão for clicado, este será estourado. Ou seja, o que acontecerá, de fato, é quando clicarmos no balão ele trocará sua fantasia para uma de balão estourado.

Então, vamos adicionar mais uma fantasia para o nosso ator, dessa vez uma fantasia de um balão estourado:

Nosso ator já possui a segunda fantasia. Vamos falar para ele que quando ele for clicado mude a sua fantasia para a próxima:

Conseguimos estourar o balão. Mas ele continuou na tela após ser estourado e, não só isso, ele continuou estourado, mesmo após voltar ao começo da tela.

Temos que falar para o nosso ator que, quando ele voltar para o começo, mude também a fantasia para a do balão inteiro:

Legal, quando clicamos no balão para estourá-lo mudamos sua fantasia e, quando ele retorna ao começo da tela, muda novamente a fantasia.

Nosso jogo já está com um comportamento inicial bem legal, mas podemos melhorá-lo um pouco escondendo o balão pouco tempo depois dele ser estourado:

E dessa forma quando clicamos no ator, ele espera meio segundo e desaparece… e não aparece mais. Se nós escondemos nosso ator, temos que pedir para ele aparecer novamente. Podemos fazer isso falando para ele se mostrar após trocar a fantasia:

Banner da Escola de Programação: Matricula-se na escola de Programação. Junte-se a uma comunidade de mais de 500 mil estudantes. Na Alura você tem acesso a todos os cursos em uma única assinatura; tem novos lançamentos a cada semana; desafios práticos. Clique e saiba mais!

Para saber mais

Já conseguimos um comportamento muito bacana para o nosso jogo. Mas podemos fazer muito mais, podemos colocar um contador que mostra quantos balões foram estourados. Podemos alterar o fundo do nosso jogo, e adicionar mais balões para deixar o jogo mais dinâmico.

Além dos eventos de click, o Scratch no permite adicionar outros eventos para o nosso ator, podemos falar para o ator executar uma ação quando determinada tecla for precionada, quando receber uma mensagem, entre alguns outros.

O Scratch é uma ferramenta muito utilizada para ensinar lógica de programação em muitos lugares do mundo. Com ele, conseguimos construir jogos, diálogos, animações e tudo mais que nossa imaginação pedir.

Na Alura Start temos vários cursos que utilizam o Scratch. Neles são ensinados desde como criar seu jogo de naves espaciais 2D, até como criar um jogo de cobrança de pênaltis, e até como criptografar mensagens.

Yuri Matheus
Yuri Matheus

Yuri é desenvolvedor e instrutor. É estudante de Sistemas de Informação na FIAP e formado como Técnico em Informática no Senac SP. O seu foco é nas plataformas Java e Python e em outras áreas como Arquitetura de Software e Machine Learning. Yuri também atua como editor de conteúdo no blog da Alura, onde escreve, principalmente, sobre Redes, Docker, Linux, Java e Python.

Veja outros artigos sobre Programação