1
00:00:00,970 --> 00:00:04,846
Aqui você deve ter percebido que definiu
uma função em especial
2
00:00:04,905 --> 00:00:09,315
toda vez que você desejou animar
seu programa, a função draw.
3
00:00:09,315 --> 00:00:12,140
Lembrando, aqui está nosso
programa do carro animado
4
00:00:13,700 --> 00:00:16,326
lembre que temos var x = 11
5
00:00:16,326 --> 00:00:18,310
que é a posição inicial do carro
6
00:00:18,310 --> 00:00:20,358
e var draw contento
todo o código de dezenho
7
00:00:20,358 --> 00:00:24,163
e então mudamos x adicionando 3
em cada execução
8
00:00:24,163 --> 00:00:27,459
e então podemos reiniciar e rodar!
9
00:00:27,459 --> 00:00:31,107
Agora que você sabe fazer suas
próprias funções,
10
00:00:31,107 --> 00:00:37,855
deve estar se perguntando "e esta função
draw? É customizável? É sempre assim?
11
00:00:37,855 --> 00:00:39,798
Bem, esta é uma boa pergunta.
12
00:00:39,798 --> 00:00:45,438
Veja que, em nosso ambiente Khan Academy,
existem funções globais especiais,
13
00:00:45,438 --> 00:00:50,070
que eu chamo de "Funções Mágicas", mas
é só um nome que dei a elas.
14
00:00:50,070 --> 00:00:55,066
Quando rodamos seu programa, verificamos
se você definiu funções com certos nomes,
15
00:00:55,066 --> 00:00:59,686
como draw, e se encontrarmos, nós às
chamamos em momentos específicos.
16
00:00:59,686 --> 00:01:02,908
Por exemplo, quando você cria
a função draw em seu código,
17
00:01:02,908 --> 00:01:07,329
nós iremos procurá-la e olhar
o código dentro dela
18
00:01:07,329 --> 00:01:12,078
e iremos chamar este código várias vezes,
tão rápido quanto pudermos.
19
00:01:12,078 --> 00:01:17,235
Se você não definir a função draw, não
iremos chamar nada, pois não há nada aqui.
20
00:01:17,235 --> 00:01:23,464
Ou seja, se nós renomearmos
a função para drow
21
00:01:23,464 --> 00:01:25,959
certo, não irá funcionar.
22
00:01:25,959 --> 00:01:29,357
Ou para drawCar...
ok, não funciona
23
00:01:29,357 --> 00:01:34,906
Então, se renomearmos a função,
o programa não a encontra mais
24
00:01:34,906 --> 00:01:38,810
Assim o código não é rodado várias vezes
e nada acontece.
25
00:01:38,810 --> 00:01:43,431
Isso significa, que você não deve renomear
uma função sua para draw,
26
00:01:43,431 --> 00:01:47,739
a menos que você queira que ela
seja chamada várias vezes.
27
00:01:48,839 --> 00:01:51,808
draw não é a única
função mágica que existe
28
00:01:51,808 --> 00:01:58,433
Existem outras funções para manipular
interações com mouse e teclado
29
00:01:59,043 --> 00:02:02,629
Vamos ver um exemplo de
outro programa de animação.
30
00:02:02,629 --> 00:02:13,234
Digamos que queremos desenhar a bola onde
o usuário está movendo o mouse
31
00:02:13,234 --> 00:02:19,870
Nós temos draw, fill e então ellipse
em (mouseX, mouseY, 10, 10)
32
00:02:19,870 --> 00:02:21,437
Vamos tentar isso. Legal!
33
00:02:21,437 --> 00:02:24,524
Temos algo legal colorindo a bola
enquanto movemos.
34
00:02:24,524 --> 00:02:30,357
Este código dentro da função draw,
será chamado várias vezes
35
00:02:30,357 --> 00:02:33,520
Por que nós o colocamos dentro da função
com nome draw
36
00:02:33,520 --> 00:02:39,629
Ele será chamado mesmo que o usuário não
mova o mouse. Está sendo chamado agora.
37
00:02:41,439 --> 00:02:47,108
Como pode ser visto, existe um jeito
de fazer isso mais eficiente
38
00:02:47,108 --> 00:02:52,685
o que precisamos mudar é o nome da função
draw para mouseMoved
39
00:02:54,005 --> 00:02:59,187
Nosso ambiente sempre verifica se existe a
função mouseMoved definida
40
00:02:59,187 --> 00:03:06,189
assim, ele irá chamá-la toda vez que o
usuário mover o mouse, veja, funciona.
41
00:03:06,189 --> 00:03:13,860
Mas ele não irá chamá-la se o mouse não
estiver se movendo.
42
00:03:15,220 --> 00:03:21,517
Antes quando usamos draw o código era
chamado mesmo com o mouse parado.
43
00:03:21,517 --> 00:03:27,020
Agora que usamos mouseMoved só chamamos
o código quando o mouse move.
44
00:03:27,020 --> 00:03:34,000
Nosso programa é mais eficiente. Então, se
você quer fazer algo quando o mouse move
45
00:03:34,000 --> 00:03:39,692
é melhor deixar o código dentro dentro da
função mouseMoved em vez da draw.
46
00:03:39,692 --> 00:03:43,965
Existe muitas outras funções
como mouseMoved.
47
00:03:43,965 --> 00:03:49,324
Existem mousePressed, mouseReleased e
keyPressed. Basta ler a documentação.
48
00:03:49,324 --> 00:03:55,194
Lembre-se que ao usar funções mágicas,
deve chamá-las com o nome correto.
49
00:03:55,194 --> 00:04:00,245
Se não, tenha certeza que criou um
novo nome para sua função.
50
00:04:00,245 --> 00:04:01,730
Legendado por [Paulo Trentin] e revisado por [Alef Almeida].