-
Aqui você deve ter percebido que definiu
uma função em especial
-
toda vez que você desejou animar
seu programa, a função draw.
-
Lembrando, aqui está nosso
programa do carro animado
-
lembre que temos var x = 11
-
que é a posição inicial do carro
-
e var draw contento
todo o código de dezenho
-
e então mudamos x adicionando 3
em cada execução
-
e então podemos reiniciar e rodar!
-
Agora que você sabe fazer suas
próprias funções,
-
deve estar se perguntando "e esta função
draw? É customizável? É sempre assim?
-
Bem, esta é uma boa pergunta.
-
Veja que, em nosso ambiente Khan Academy,
existem funções globais especiais,
-
que eu chamo de "Funções Mágicas", mas
é só um nome que dei a elas.
-
Quando rodamos seu programa, verificamos
se você definiu funções com certos nomes,
-
como draw, e se encontrarmos, nós às
chamamos em momentos específicos.
-
Por exemplo, quando você cria
a função draw em seu código,
-
nós iremos procurá-la e olhar
o código dentro dela
-
e iremos chamar este código várias vezes,
tão rápido quanto pudermos.
-
Se você não definir a função draw, não
iremos chamar nada, pois não há nada aqui.
-
Ou seja, se nós renomearmos
a função para drow
-
certo, não irá funcionar.
-
Ou para drawCar...
ok, não funciona
-
Então, se renomearmos a função,
o programa não a encontra mais
-
Assim o código não é rodado várias vezes
e nada acontece.
-
Isso significa, que você não deve renomear
uma função sua para draw,
-
a menos que você queira que ela
seja chamada várias vezes.
-
draw não é a única
função mágica que existe
-
Existem outras funções para manipular
interações com mouse e teclado
-
Vamos ver um exemplo de
outro programa de animação.
-
Digamos que queremos desenhar a bola onde
o usuário está movendo o mouse
-
Nós temos draw, fill e então ellipse
em (mouseX, mouseY, 10, 10)
-
Vamos tentar isso. Legal!
-
Temos algo legal colorindo a bola
enquanto movemos.
-
Este código dentro da função draw,
será chamado várias vezes
-
Por que nós o colocamos dentro da função
com nome draw
-
Ele será chamado mesmo que o usuário não
mova o mouse. Está sendo chamado agora.
-
Como pode ser visto, existe um jeito
de fazer isso mais eficiente
-
o que precisamos mudar é o nome da função
draw para mouseMoved
-
Nosso ambiente sempre verifica se existe a
função mouseMoved definida
-
assim, ele irá chamá-la toda vez que o
usuário mover o mouse, veja, funciona.
-
Mas ele não irá chamá-la se o mouse não
estiver se movendo.
-
Antes quando usamos draw o código era
chamado mesmo com o mouse parado.
-
Agora que usamos mouseMoved só chamamos
o código quando o mouse move.
-
Nosso programa é mais eficiente. Então, se
você quer fazer algo quando o mouse move
-
é melhor deixar o código dentro dentro da
função mouseMoved em vez da draw.
-
Existe muitas outras funções
como mouseMoved.
-
Existem mousePressed, mouseReleased e
keyPressed. Basta ler a documentação.
-
Lembre-se que ao usar funções mágicas,
deve chamá-las com o nome correto.
-
Se não, tenha certeza que criou um
novo nome para sua função.
-
Legendado por [Paulo Trentin] e revisado por [Alef Almeida].