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