Apostila Scratch
Apostila Scratch
Apostila Scratch
Captulo 1.
1.1.
Scratch
Introduo ao Scratch
Scratch uma nova linguagem de programao desenvolvida pelo Lifelong Kindergarten Group no MIT Media Lab, com o apoio financeiro da National Science Foundation, Microsoft, Intel Foundation, Nokia e consrcios de investigao do MIT Media Lab. O Scratch nos permite criar histrias interativas, animaes, jogos, msica e arte e compartilhlas atravs de websites. A programao efetuada atravs da criao de sequncias de comandos simples, que correspondem a blocos de vrias categorias, encaixados e encadeados de forma a produzirem as aes desejadas. Os projetos Scratch so baseados em objetos grficos chamados Sprites. Pode-se mudar a aparncia de um Sprite, dando-lhe um novo traje, ou faz-lo parecer-se com uma pessoa, um objeto ou at mesmo um animal. Ainda, possvel usar qualquer imagem como traje: desenhada no "Editor de Pintura", importada do disco rgido, ou arrastada a partir de um site. possvel dar instrues a um Sprite, indicando-lhe para se mover, reproduzir msica ou reagir a outros Sprites. Para isso, basta criar sequncias de comandos, arrastando-os e encaixando-os em blocos, tal como se fossem peas de Lego ou de um puzzle. Quando clicar duas vezes (duploclique), o Scratch executa os blocos a partir do topo do script para o final. Em resumo, o Scratch um software que permite criar histrias, jogos e animaes. Isto tudo de forma simples, animando o movimento de objetos.
1.2.
O ambiente de programao do Scratch permite a montagem de um algoritmo de programao atravs de diagrama de blocos, onde, diferentemente das outras linguagens que ensinam lgica, onde tem que ser digitado comandos, o usurio do scratch tem como ver a sequncia de aes tendo muito mais controle sobre o que poder fazer. Quando abrimos o Scratch, entramos diretamente para o modo de Edio, que nos permite criar ou modificar projetos. Veremos agora um pouco sobre a tela do Scratch e as suas principais funes.
Categoria de comandos: Os comandos so divididos em categorias, sendo elas: movimento, aparncia, som, caneta, controle, sensores, operadores, variveis; Blocos de comandos: Onde esto agrupados os comandos de uma determinada categoria; Opes para rea de Scripts: Opes principalmente para rea de Scripts, trajes e sons; rea de edio e conexo de Scripts(rea de Scripts ou rea de comandos): Edio do objeto selecionado: Nesta rea feita a programao e a unio dos blocos; Palco: Onde os objetos so colocados e onde possvel ver o resultado da programao criada. O objeto inicial que aparece no palco o gato; Modos de visualizao: So os tipos de visualizao do palco; Iniciar e Parar: So os botes para iniciar e parar os Scripts; Botes de novo Sprite: Cria um novo personagem ou objeto para o projeto; Objetos usados na animao (Lista de Sprites): Aparecem miniaturas de todos os Sprites. Clique para escolhes e editar um Sprite. O objeto em edio fica selecionado.
Seleo de idioma: Alterar para o idioma de preferncia do usurio; Salvar projeto: Salvando o projeto de forma rpida;
Compartilhar projeto: Compartilhamento do projeto para a comunidade de forma rpida, colocando-o online. Dentro do menu geral temos os seguintes menus. Menu Arquivo: Novo: Abre um novo projeto; Abrir: Abre um projeto; Salvar: Salvar o Projeto; Salvar como: Salvar o projeto com outro nome; Importar projeto: Importa um projeto j existente para um projeto atual; Exportar projeto: Exporta o projeto atual; Notas do projeto: Insere notas sobre o projeto; Sair: Fecha a janela do Scratch. Menu Editar: Desfazer apagar: Permite recuperar o ltimo comando, bloco ou Sprite eliminado; Iniciar passo a passo: Mostra o passo a passo da execuo do programa; Marcar passo simples...: Faz com que o passo a passo possa ser feito mais rpido ou mais lento; Comprimir sons: Comprime os sons usados no projeto, para reduzir o tamanho do projeto; Exibir Blocos de Motor. Menu Compartilhar: Compartilhar o arquivo online: Permite fazer o upload do projeto para o site, para ficar disponvel a todos os seus visitantes; Ir ao site do Scratch: Vai at a pgina do Scratch.
1.2.2.1.
A rea de comando ser onde montaremos os nossos scripts que daro vida a nossa programao que pode se tornar, por exemplo, um jogo. Ao lado temos um exemplo de um grupo de comandos, os quais foram agrupados e montados dentro da rea de comandos. Mais adiante
1.2.2.2.
Palco
O palco onde ficaro e sero mostradas as histrias, jogos e animaes. Os Sprites podem mover-se e interagir uns com os outros no palco. O palco tem 480 unidades de largura e 360 unidades de altura e est dividido entre as coordenadas X e Y . O centro do palco tem as coordenadas 0 em "X" e 0 em "Y" . Para saber a posio de um determinado ponto dentro do palco, mova o mouse at o ponto desejado e observe logo abaixo do palco no canto inferior direito. Pela imagem abaixo, indica-se que o cursor est no ponto X:100 e Y: 50.
1.2.2.3.
Como falado acima, o palco tem 480 unidades de largura e 360 unidades de altura e dado pelo sistema ortogonal XY. Podemos perceber isto melhor atravs da figura ao lado que mostra bem melhor este sistema de coordenadas. Neste sistema, ao centro dado a posio X:0 Y:0. Se percebermos bem na figura, notamos que, para cima, o Y ficar positivo e para baixo, ficar negativo. A mesma coisa ocorre semelhantemente para a coordenada Y. Para a esquerda, ficar o X negativo e para direita, ficar positivo. Para sistema de direes, como mostra a figura ao lado, mostra o movimento em graus. atravs das direes que vamos girar o nosso objeto dentro do palco. Guarde bem estes duas ultimas figuras que mostram tanto o sistema de coordenadas como o sistema de direes. Em breve, iremos perceber para que elas realmente servem na prtica.
1.2.2.4.
Sprite
O Sprite qualquer objeto do Scratch. Observe que o nosso Sprite representado por um gato, portanto, toda vez que abrirmos o Scratch, aparecer esta figura. Podemos ter vrios Sprites dentro do palco, onde eles podem aparecer, desaparecer e fazer diversas aes onde envolvem outros Sprites para formar uma animao ou um jogo. Mais a frente aprenderemos melhor como trabalhar com os objetos, podendo aument-los ou diminu-los, duplic-los ou apag-los, ou at realizar outras aes importantes.
1.2.2.5.
Opes de rotao
As opes de rotao determinam como o Traje vai se comportar. Por exemplo, se ele pode girar a medida que o Traje muda de direo, ou se s para a direita ou esquerda, ou se ele no vai ter rotao alguma (o Traje nunca roda, mesmo que
1.2.2.6.
Informaes do objeto
Informa principalmente sobre o nome do objeto, a posio dele em X e em Y, assim como a direo.
1.2.2.7.
composto de trs abas que sero estudadas posteriormente: Estas abas so: Comando (onde ficaro os comando para o nosso Sprite), Trajes (Onde ficaro os trajes e onde podemos acrescentar ou tir-los) e Sons (onde ficaro os sons que podemos usar).
1.2.2.8.
Como mostra na figura ao lado, podemos crescer ou encolher um objeto assim como apag-lo ou duplic-lo. Clique em um destas opes e em seguida clique no sprite e veja o que acontece.
1.2.2.9.
Modos de Apresentao
Define como o palco ser apresentado, assim ele poder ser apresentado em pequeno tamanho, com o palco cheio ou em modo apresentao onde ele ter em toda sua tela a apresentao do palco.
1.3.
Dentro das oito categorias disponveis na Palete de Comandos, h trs tipos principais de comandos: Comandos Simples: Estes comandos tm encaixes no topo e no fundo, como . Alguns destes comandos tm reas onde se pode escrever nmeros (como, por exemplo, o "10" do comando ) ou escolher um item a partir do menu pull-down (tal como "miau" no bloco). Alguns destes comandos tm um formato em forma de "C", onde podemos inserir outros comandos, como por exemplo: .
Cabea: Estes comandos tm um topo arredondado, por exemplo: . Destinam-se a ser colocados no topo de blocos de comandos aguardando por ocorrncias tal como "clicar na bandeira verde", para que assim sejam executados os respectivos blocos de comandos. Valores: Estes comandos, tais como e destinam-se a serem encaixados em certas reas dos comandos simples. Valores de formato arredondado (como ou) indicam nmeros ou listas, e podem ser usados em comandos com reas arredondadas ou retangulares (como ou). Os valores com extremidades pontiagudas (como ) indicam valores booleanos (verdadeiro ou falso) e podem ser inseridos em comandos com espaos pontiagudos ou retangulares (como e ).
Alguns valores tm uma check-box junto aos mesmos, como . Assinalando a checkbox, o valor fica visvel no Palco, sendo atualizado dinamicamente medida que for mudando. Os valores podem ser mostrados em diversos formatos: - Um pequeno mostrador com o nome do indicador; - Um mostrador largo, sem qualquer nome; - Com um slider que permite alterar o valor (apenas disponvel para variveis).
1.4.
Quando o Scratch aberto, no palco j est aparecendo o gato. Mas nem sempre se deseja us-lo e ento possvel inserir ou criar um novo objeto. Da mesma forma, possvel ter vrios objetos em uma programao. Veja ao lado como aparece um novo objeto no palco: Para criar ou inserir um novo objeto, devemos clicar em uma das seguintes opes:
Pintar um novo objeto: Abre um editor que permite pintar e desenhar um objeto; Escolha um Sprite do arquivo: Permite inserir um arquivo de imagem do computador; Pegar objeto surpresa: Clicando neste boto, surge um objeto surpresa no palco, ou seja, a pessoa no determina o objeto que surgir; Os Sprites ficaro na lista de Sprites, onde podemos visualiz-los e modific-los, conforme desejarmos.
1.5.
De agora em diante vamos comear a estudar primeiramente os comandos bsicos do scratch e depois passar a conhecer melhor suas funes. Primeiramente devemos (como mostra a figura ao lado) mover, ou arrastar um comando para a rea de scripts. Para isso, s clicar em cima do objeto desejado, segurar e mov-lo para a rea de Script.
Quando abrimos o Scratch ele abre diretamente na ABA Movimento. Observe a figura acima e tente fazer o mesmo. Clique no comando mova 10 passos e solte na rea de script. Para executar este simples comando, clique sobre ele. Observar que aps o clique no comando mova 10 passos, nosso Sprite se mover. Observe que as coordenadas mudaro tambm. Perceba que alguns comandos, como os do exemplo acima tem campos de edio, por exemplo, e para alterar o valor, clica-se no espao da rea branca e escreve-se o novo nmero. Portanto, pratique clicando no numero 10, e altere para -10. Pressione novamente o comando e perceber que nosso Sprite e as coordenadas voltaro para o lugar de origem.
1.6.
J que sabemos agora como mover um comando para a rea de scripts e sabemos como execut-lo, vamos ento aprender sobre cada uma das abas, e seus respectivos comandos. Conforme nossa progresso no contedo, faremos exerccios que pegaro elementos de outras abas para aprimorar mais nossos conhecimentos. Comearemos pela aba Movimento. Esta aba realmente onde podemos fazer nossos Sprites andarem, ou seja, se movimentarem pelo palco.
quaisquer que vo simbolizar o nmero de graus e passos dados, vamos comear a dar uma movimentao maior ao nosso Sprite. Mova diversos comandos de mova 10 passos e vire 15 graus, modificando para valores diferentes. Clique neles e v observando o comportamento do Sprite se movimentando na tela.
1.7.
Trabalhando em blocos
At agora, trabalhamos praticamente com comandos individuais, porm, teremos que comear a aprender como junt-los para formar um Script. Ou seja, para ficar mais claro, um Script vai ser um conjunto de aes que vamos reunir para fazer nosso Sprite se movimentar. Para isso, vamos abrir um novo projeto sem salvar o anterior. Clique em Arquivo > Novo. Aparecer uma janela para salvar o projeto atual, porm como no vamos utiliz-lo, clique em no e aparecer um novo projeto. Agora, arraste dois blocos de aes e coloque um bem prximo ao outro. Quando soltar, perceber que como se fosse um im, os dois ficaro grudados. Observe a figura ao lado e monte este grupo de aes e execute. Perceba o que acontece.
1.8.
Para a retirada de uma ao do bloco simples: segure esta ao e puxe-a para baixo, ento perceber que ele vai se desprender do bloco.
1.9.
Removendo uma ao
Digamos que no desejamos mais uma ao ou um Script (que como j sabemos um conjunto de aes) do nosso projeto. Necessitamos ento remov-la! Para retirar a ao da rea de Script, simplesmente pegamos o bloco no mais desejado e puxamos de volta para o bloco de aes. Com isso, percebemos que o grupo ou a ao vai desaparecer.
1.10.
Renomeando um objeto
Observe dentro da rea de informaes de Script que temos escrito objeto1. Para alterar o nome do objeto para gato, ento clique em cima e d um duplo clique e modifique para o nome desejado. Observe que dentro da rea de objetos usados o nome tambm foi modificado.
Nota: Tanto nestes blocos de efeito como em outros, podemos ter blocos com por e outros com para. Por exemplo: na aba movimento temos o bloco mude x por e mude x para. Neste primeiro caso, cada vez que clicamos no bloco, o valor de x vai sendo incrementado, dependendo do seu valor, ou seja, digamos que temos mude x por 10, ento toda vez que clicamos, o x vai sendo incrementado em 10. Com o mude x para o valor de x ser constante para aquele valor determinado, ou seja, se colocarmos um bloco mude x para 10, no importa quantas vezes clicamos, pois ele sempre ficar na posio 10.
1.12.
J aprendemos at agora como dar movimento para o nosso objeto e modificar parmetros da aparncia dele. Vamos comear a colocar sons neste nosso objeto. Podemos primeiramente importar um arquivo j existente da prpria biblioteca do Scratch ou gravar um som, podendo executar, parar ou excluir.
Ateno: se o som no funcionar, verifique se este recurso funciona no seu computador (se o som est ligado e existem caixas de som funcionando).
Para escolher o som desejado, clique na seta destacada e escolha entre as opes do menu.
Depois tambm possvel acrescentar outro bloco de toque o tambor aps o segundo movimento. Vamos ento incrementar um pouco mais, e colocar outro toque, como mostra a imagem abaixo. D um duplo clique sobre o Script e perceba o que acontece.
Agora, implemente o Script semelhante ao da figura ao lado, introduzindo o bloco sempre localizado na seco Controle. Clique em cima e veja o que acontece. Para interromper o programa use o boto vermelho no canto superior direito do palco, ou clique novamente sobre o script.
1.15.3.
Como foi visto anteriormente, possvel programar no Scratch que uma ou mais aes continuem acontecendo e se repetindo por tempo indeterminado. Para isso, se usa o comando SEMPRE, disponvel na categoria Controle. Clique e arraste o bloco SEMPRE para a rea de edio de scripts. Encaixe o grupo de comandos dentro do bloco SEMPRE.
Para arrastar um conjunto de blocos, clique sobre o primeiro bloco (no topo do conjunto) e arraste tudo. Para parar a programao aps usar o comando SEMPRE, clique no boto vermelho que significa Parar Tudo.
O Scratch tambm possui controles para o incio da execuo dos scripts. Um exemplo a bandeira verde que fica sobre a tela de visualizao das programaes: ela pode ser usada para iniciar o funcionamento de um script. Para isso necessrio que seja colocado no script o bloco de controle que indica .
Clique no bloco e arraste para a rea de edio de scripts. Encaixe o bloco sobre o conjunto j existente, se for o caso. Este controle deve ser o primeiro em um grupo de blocos, pois ele que determina o incio desta execuo. Para testar, clique sobre a bandeira verde que significa Iniciar Scripts. A Bandeira Verde fornece uma maneira conveniente de iniciar vrios scripts ao mesmo tempo. Clica na Bandeira Verde para iniciar todos os blocos como no topo. No "Modo de Apresentao" a Bandeira Verde surge como um pequeno cone no canto superior
direito do monitor. Pressionar a tecla "Enter" tem o mesmo efeito que clicar na Bandeira Verde.
outras formas e discuta em sala de aula com os colegas e com o instrutor o que foi aprendido
1.23. Trabalhando com a aba Sensores 1.23.1. Comandos tocando em / tocando na / tocando cor
Atravs destes comandos agora podemos utilizar melhor os nossos comandos de controle, por exemplo: saber se o nosso objeto est tocando em uma determinada cor, ou no ponteiro de mouse ou na borda, ou se uma cor est tocando em outra cor. Para testar, construa algum script usando o bloco ao lado com o controle SE.
1.28.2. Listas
No Scratch possvel criar e manipular listas de itens compostas por nmeros e frases. Para criar uma lista, preciso ir ao bloco de Variveis e depois em "Criar uma Lista" dando um nome a ela. Quando a lista tiver sido criada, vrios blocos iro surgir. Quando se cria uma lista ela fica visvel no palco, mostrando todos os seus itens. possvel editar os itens da lista diretamente no palco. A lista criada vazia, com a indicao de "itens: 0". Para
adicionar itens lista, clica-se no smbolo "mais", no canto inferior esquerdo do mostrador. Como alternativa, pode-se adicionar itens usando comandos simples (exemplo: ) possvel ajustar o tamanho do espao da lista, arrastando-lhe o canto inferior direito. Tem-se ainda a opo de exportar a lista para um documento TXT clicando com o boto direito que ser criado diretamente na pasta de instalao do Scratch. Inversamente, podemos usar a opo disponvel para importar dados para uma lista a partir de qualquer ficheiro TXT com um item por linha.
1.29. Caracteres
Os conjuntos de caracteres podem ser formados usando letras, algarismos ou outros caracteres; eles podem ser guardados em variveis ou listas e comparados atravs dos seguintes comandos:
A comparao feita atravs dos primeiros caracteres. Os algarismos so os mais pequenos, seguidos dos caracteres especiais, das letras maisculas e finalmente das letras minsculas, nessa ordem. No caso dos primeiros caracteres serem iguais, so comparados aos segundos caracteres e assim sucessivamente. Porm, se um dos conjuntos apenas tiver algarismos, ento ser tratado como nmero e a comparao no ser possvel.
na figura ao lado, para se ter por base, o tamanho real e o reduzido. Na imagem abaixo temos a idia de como ficaro os nossos elementos. Vamos comear a programao da nossa bola. Primeiramente vamos dar o movimento a esta bola, portanto, clique na bola na rea de Sprites e coloque o Script ao lado.
Para muitas programaes, jogos e histrias importante usar testes. Podemos fazer uma bola bater em um objeto e quando ela bater, voltar. Mas como ela vai saber que bateu? Como determinar o que acontece quando ela bate? Vamos comear pela programao do Jogador 1(Jog 1). E para isso monte o Script ao lado. Aps montado, duplique o Script e troque Jog 1 por Jog 2 e a direo 45 pela direo -45. Clique na Bandeira Verde e veja o que acontece. Perceba que quando a bola toca no Jogador 1, ela vai na direo 45 e quando toca no Jogador 2, ele vai na direo -45. Podemos tambm fazer com que a bola s se movimente quando clicada nela, para isso, use o controle quando Bola clicado. No Script perceba que como tem o se tocar na borda, volte, quando toca na borda (qualquer borda do palco) ela volta na direo contrria. Veja que foram feitos trs Scripts separados: um para o movimento da bola e outros para o movimento dos jogadores. Tambm possvel fazer tudo junto, usando apenas um controle de incio do Script e apenas um bloco SEMPRE. Exerccio: Modificar os Scripts, para que os trs se tornem um s. Agora vamos complementar o nosso projeto. O desafio fazer uma bola ir na direo do gol oposto e se bater nele, dizer Ponto para o Jogador 1 ou Ponto para o Jogador 2. Para este exemplo foram importados os objetos button e buttonPressed e chamados de Gol 1 e Gol 2. Rotacionamos os botes para ficar como mostra a figura ao lado. Vamos agora fazer com que nossa bola sempre parta de um ponto especifico, ou seja, que parta toda vez que iniciar do ponto x:0 y:0 apontando para a direo 0 graus. Implemente isso entre os comandos quando e sempre. Agora, devemos fazer com que quando tocar em um dos Gols, ele diga isso. Acrescente na rea de edio de Scripts o bloco se, seno que fica na categoria Controle. Coloque no espao dose o sensor tocando em ... e selecione o Gol 1. Voc pode colocar dentro do seno o comando MOVA para que a bola ande se no tocar no Gol 1. Mas se deixar o seno vazio, no acontecer nada quando a bola no tocar no Gol 1. Dentro do blocose coloque a ao que deve ocorrer quando a bola tocar o gol, ou seja, coloque o bloco Ponto para o Jogador 2 por 2 segundos. Coloque o bloco dentro de um bloco SEMPRE para que este teste seja feito o tempo todo. Depois, coloque um controle que determine o incio do Script. Observe o exemplo da figura ao lado.
Duplique o bloco e troque Gol 1 por Gol 2 e Ponto para o Jogador 2 por Ponto para o Jogador 1 Exerccio: Faa com que o Script se movimente para todos os lados e que fique mudando de traje.
1.32. Compartilhando
Para fazer o compartilhamento, devemos colocar o login e a senha com que se registrou no Scratch e, tambm, o nome do projeto. Podem-se assinalar vrias etiquetas, para que o projeto seja localizado de forma mais rpida. Depois podemos tambm escrever algumas notas sobre o projeto,como, instrues de utilizao. Finalmente clicamos em OK para envi-lo.