Vamos falar de algo que você usa bastante: Funções.
Sempre se usa comandos como: rect(), fill() ou text(), se usa funções.
E elasdesenham o que você as diz para fazer.
O que é uma função? É uma coleção de códigos que agrupamos e nomeamos
Pois queremos usá-los várias vezes.
Pense no rect() O que rect() faz? Ele apenas desenha quatro linhas, certo?
Poderíamos apenas usar a função line(), certo?
e aqui temos o que se parece com um retângulo. Mas percebemos que
queremos desenhas um retângulo várias vezes. E seria muito chato ter que fazer
contas toda vez para desenhar uma linha para os próximos pontos.
Ao invés disso, fazemos apenas a função rect() que faz a mesma coisa
que a funções line() fizeram, mas, em muito menos códigos.
Isso é muito legal e rect() é uma dessas funções disponíveis para todos os
programas na Khan Academy. Mas você também pode fazer suas próprias funções
para usar em seus programas.
Por exemplo: estamos fazendo um programa e queremos desenhar
"Winston" várias vezes, talvez vamos contar a história de Winston
e mostrá-lo em cada época de sua vida.
Então é assim que o código do desenho pode começar.
Temos variáveis "faceX" e "faceY" para iniciar o centro do rosto
e então desenhamos os olhos e a boca relativas a essas variáveis.
Agora, o programa vê o código e não está dentro de nenhuma função.
Então ele o lê e executa só uma vez.
Vamos transformar em uma função. Para isso, fazemos algo parecido com
o modo de declarar uma variável, pois é isso que queremos.
Então escrevemos "var drawWinston" - Damos um bom nome - bem fácil -
e depois "=", mas aqui ao invés de escrever um número ou uma corda,
escrevemos "function()",e depois uma chave aberta e uma fechada.
e o ponto e vírgula ;
Ok, então o que precisamos fazer é colocar tudo que queremos
dentro da função entre as chaves. Pegamos todo o código e colocamos
dentro da função.
E agora o que temos é uma variável que guarda uma função.
Basicamente demos uma etiqueta a esse bloco de código.
Para dizer ao programa a qualquer hora achar esse bloco e executá-lo.
Então fazemos esse código reutilizável. Mas agora perceba que Winston sumiu.
Para onde ele foi? O que aconteceu foi que ao colocar o código na função.
Dizemos ao programa: esses são códigos que eu quero executar depois,
Mas, somente quando eu quiser.
Então temos que dizer para executar o código.
Quer dizer que precisamos "chamar" a função
Como fazemos com ellipse(). rect() e line().
Então escrevemos o nome da função ('drawWinston') seguido do parêntese
aberto e fechado '()' e o ponto e vírgula ; e então, temos um Winston.
OK, eu acho legal, mas você pode não achar, pois o que fizemos é fazer
o programa executar exatamente o que fez antes.
O ponto das funções é que podemos reutilizá-las. Então vamos fazer isso.
Podemos copiar e colar essa função repetidas vezes. Mas, parece o mesmo.
Bom, funcionou. Desenhou vários Winstons, mas estão no mesmo lugar.
Se tivessemos visão de raio X, poderiamos ver 3 Winstons, mas não temos.
Eu não sei quanto a você.
Mas, faremos uma mudança na função que será bastante óbvio.
Você vê faceX e faceY- estão sempre 202 e 208? Podemos mudar isso
usando a função random()-de 35 a 350. Assim terá um número aleatório.
Faremos a mesma coisa aqui, então, toda vez que "chamamos" a função,
gerará um número aleatório e se pressionamos "restart", teremos
Winstons aleatórios, muito legal.
Eu acho isso legal, pois teríamos de escrever vários códigos
se não tivéssemos a função.
Teríamos três vezes o mesmo código.
Mas ainda não é tão útil quanto poderia, pois, não queremos Winstons aleatórios,
Queremos posicionar os Winstons em um ponto específico na tela.
Então fiquem ligados, pois falaremos sobre passar parâmentros
às nossas funções, e então você poderá fazer isso.
Legendado por [Alef Almeida] Revisado por [Cainã Perri]