1 00:00:00,938 --> 00:00:04,358 Até agora, nós vimos como criar um vetor e acessá-lo 2 00:00:04,378 --> 00:00:06,430 Assim como em outras variáveis, no entanto, 3 00:00:06,430 --> 00:00:08,568 uma das coisas bem legais sobre vetores 4 00:00:08,568 --> 00:00:12,336 é a maneira que podemos modificá-los dinamicamente enquanto um programa roda. 5 00:00:13,015 --> 00:00:15,421 Ok, deixe-me mostrar o que eu quis dizer com isso. 6 00:00:15,421 --> 00:00:17,888 Então aqui nós temos este programa que 7 00:00:17,888 --> 00:00:20,697 mostra Hopper segurando alguns balões, super fofo. 8 00:00:21,393 --> 00:00:25,219 E então isso funciona da seguinte forma: nós temos esse vetor xPositions 9 00:00:25,219 --> 00:00:29,598 que possui dois números dentro que dizem onde queremos colocar os balões. 10 00:00:29,598 --> 00:00:32,272 E aqui embaixo nós temos esse laço de repetição, 11 00:00:32,272 --> 00:00:35,218 e esse laço passa por todos os elementos desse vetor. 12 00:00:35,637 --> 00:00:40,066 Para cada um deles, é desenhado uma linha do "x" para baixo até o braço do Hooper, 13 00:00:40,066 --> 00:00:47,263 e então desenha uma elipse em "x" que é 30x40 pixels, e esse é nosso balão. 14 00:00:47,263 --> 00:00:51,370 Ok, legal. Então agora que sabemos como isso funciona, 15 00:00:51,370 --> 00:00:54,079 sabemos que se quisermos outro balão aparecendo, 16 00:00:54,079 --> 00:00:58,596 podemos adicionar um número a este vetor, certo? Como, por exemplo, 300. 17 00:00:58,596 --> 00:01:02,291 Lindo. Agora nós possuímos três balões para um Hopper feliz. 18 00:01:02,491 --> 00:01:08,394 Mas digamos que nós queremos dar a um usuário que não sabe programar 19 00:01:08,394 --> 00:01:10,878 a habilidade de adicionar novos balões. 20 00:01:10,878 --> 00:01:13,705 Então queremos dar o programa a um usuário e falar: 21 00:01:13,705 --> 00:01:17,890 "Ei, você pode clicar em qualquer lugar, e o balão irá aparecer." 22 00:01:17,938 --> 00:01:20,891 Isso não seria legal? Eu acho que seria. 23 00:01:20,966 --> 00:01:23,663 Então, como faríamos isso? 24 00:01:23,713 --> 00:01:26,382 Queremos nosso programa mudando ao longo do tempo, certo? 25 00:01:26,382 --> 00:01:30,515 Toda vez que o usuário clicar, irá aparecer um balão lá. 26 00:01:30,515 --> 00:01:35,045 Então vamos começar movendo tudo para uma função desenhar 27 00:01:35,045 --> 00:01:37,902 assim será fácil de mudar ao longo do tempo. 28 00:01:37,902 --> 00:01:43,197 Nós iremos mover isso para baixo e colocar a indentação aqui. Ok, ótimo. 29 00:01:43,467 --> 00:01:48,477 Agora nós queremos checar e ver, o usuário está pressionando o mouse agora? 30 00:01:48,477 --> 00:01:50,663 Bem, podemos fazer isso com o nosso "if". 31 00:01:50,663 --> 00:01:55,493 Então if(mousePressionado), e então nós faremos alguma coisa. 32 00:01:55,493 --> 00:01:58,426 O que nós iremos fazer? Se o mouse é pressionado, 33 00:01:58,426 --> 00:02:01,610 então nós queremos de alguma forma adicionar um número a este vetor. 34 00:02:01,610 --> 00:02:04,694 E vamos deixar isso com apenas dois elementos de novo. Ok. 35 00:02:04,694 --> 00:02:07,926 Nós queremos adicionar um número a este vetor de alguma forma. 36 00:02:07,926 --> 00:02:11,102 Bem, eu irei mostrar uma maneira que podemos fazer isso. 37 00:02:11,102 --> 00:02:18,389 Então nós podemos dizer xPositons[2] = mouseX; 38 00:02:18,389 --> 00:02:22,204 Muito bem, e deixe-me mostrar que isso funciona. 39 00:02:22,204 --> 00:02:26,548 Eu cliquei, e eu tenho um balão. Então, o que isso faz? 40 00:02:26,548 --> 00:02:33,927 Isso disse, xPositons[2] disse ache esse vetor e encontre o elemento na posição 2, 41 00:02:33,927 --> 00:02:36,456 e lembre-se que este na verdade é o terceiro elemento, 42 00:02:36,456 --> 00:02:38,499 porque nossos vetores começam do zero. 43 00:02:38,499 --> 00:02:42,256 E, se você olhar, não existe terceiro elemento, certo? Não existe nada no lugar. 44 00:02:42,256 --> 00:02:45,972 Então isso diz para achar isto, e então coloque o mouseX nessa posição. 45 00:02:45,972 --> 00:02:51,196 Bem, já que não existe nada lá, então muda de nada para mouseX. 46 00:02:51,196 --> 00:02:54,457 E agora nosso vetor possui três itens de tamanho, 47 00:02:54,457 --> 00:02:57,030 e esse laço "for" aqui embaixo quando passa pelo vetor, 48 00:02:57,030 --> 00:03:00,427 irá desenhar o terceiro balão. 49 00:03:00,427 --> 00:03:04,190 Isso é bem legal, e deixe-me clicar mais um pouco para te mostrar como funciona. 50 00:03:04,190 --> 00:03:08,932 Você vê que toda vez que eu clico, ele continua desenhando o terceiro balão 51 00:03:08,932 --> 00:03:11,318 onde quer que eu clique com meu mouse. 52 00:03:11,318 --> 00:03:15,918 E isso é porque estamos constantemente sobrescrevendo a posição dois. 53 00:03:15,918 --> 00:03:18,547 A coisa com o índice dois. 54 00:03:18,547 --> 00:03:23,162 Estamos constantemente sobrescrevendo com o atual mouseX. 55 00:03:23,162 --> 00:03:28,298 Então nós sempre teremos três balões porque temos esse aqui na posição zero, 56 00:03:28,298 --> 00:03:34,598 esse na posição um e nós iremos constantemente mudar a posição dois. Ok? 57 00:03:34,598 --> 00:03:37,173 Então isso é legal, mas o que nós realmente queremos 58 00:03:37,173 --> 00:03:40,305 é deixar o usuário criar vários balões, certo? 59 00:03:40,305 --> 00:03:43,435 Para que toda vez que o usuário clicar, apareça um novo balão. 60 00:03:43,435 --> 00:03:46,245 Então isso significa que devemos constantemente incrementar 61 00:03:46,245 --> 00:03:50,611 o índice do elemento do vetor em que estamos guardando. 62 00:03:50,611 --> 00:03:52,562 Não queremos que seja dois todas as vezes, 63 00:03:52,562 --> 00:03:56,200 nós queremos que seja d\ois, e três, e depois quatro, e cinco, e seis, etc. 64 00:03:56,200 --> 00:03:59,056 Poderíamos fazer isso tendo uma pequena variável de contagem. 65 00:03:59,056 --> 00:04:01,004 Então digamos newInd=2; 66 00:04:01,004 --> 00:04:05,285 Isso é como ela vai ser inicializada, então iremos dizer newlnd em vez de dois. 67 00:04:05,285 --> 00:04:09,655 E então o que nós realmente queremos fazer é dizer newlnd++ 68 00:04:09,655 --> 00:04:11,808 Então cada vez adicionamos um a ela. 69 00:04:11,808 --> 00:04:15,181 Iremos começar com dois, então se torna três e depois quatro. 70 00:04:15,181 --> 00:04:18,476 Assim, toda vez que é pressionado, aparecem mais. Então vamos testar. 71 00:04:18,476 --> 00:04:22,278 Ta-da! Vários balões. Festa de balões. Woo! 72 00:04:22,278 --> 00:04:27,502 Então isso é legal, não é? Mas essa não é a melhor maneira de fazer isso 73 00:04:27,502 --> 00:04:32,045 pois acontece que adicionar itens a um vetor é algo que queremos fazer muito. 74 00:04:32,045 --> 00:04:34,666 Então temos uma maneira mais fácil de fazer do que essa. 75 00:04:34,666 --> 00:04:38,372 Deixe-me deletar algumas coisas que eu fiz. 76 00:04:38,372 --> 00:04:42,657 Tudo bem, então nós não precisamos disso. Vamos deixar isso comentado. 77 00:04:42,657 --> 00:04:50,881 Então fazemos isso chamando xPositions.push e então mouseX. 78 00:04:50,881 --> 00:04:56,261 Então o que estamos fazendo aqui, estamos chamando esse método no vetor xPositions. 79 00:04:56,261 --> 00:04:58,355 Estamos chamando como um comando em um vetor. 80 00:04:58,355 --> 00:04:59,598 Estamos dizendo ao vetor, 81 00:04:59,598 --> 00:05:05,280 "Olha, coloque esse novo valor, que é mouseX, coloque isso no final do vetor." 82 00:05:05,280 --> 00:05:09,210 Então toda vez que for chamado, toda vez que pressionar o mouse, 83 00:05:09,210 --> 00:05:12,486 irá olhar para o mouseX e colocá-lo no final do vetor. 84 00:05:12,486 --> 00:05:17,058 Assim, o vetor ficará maior e maior. Então vamos recomeçar e tentar isto. 85 00:05:17,058 --> 00:05:22,344 Ta-da, funcionou! E é bem menos código do que nós tínhamos antes. Tudo bem? 86 00:05:22,508 --> 00:05:25,370 Assim, a maior parte do tempo, você vai querer usar o envio, 87 00:05:25,370 --> 00:05:27,794 se for adicionar coisas para seu vetor desse jeito. 88 00:05:27,794 --> 00:05:31,541 E é elegante porque assim você pode ter vetores que crescem durante o programa. 89 00:05:31,541 --> 00:05:34,397 Como quando você tem uma animação ou usuários fazendo coisas, 90 00:05:34,397 --> 00:05:36,067 e então você pode fazer muito mais. 91 00:05:36,397 --> 00:05:41,510 Então você viu 90% do que provavelmente vai fazer com um vetor e jeitos de usá-los 92 00:05:41,510 --> 00:05:43,798 Mas ainda existe muitas utilidades para um vetor. 93 00:05:43,798 --> 00:05:47,079 Então se você tiver dúvidas, pergunte na conversa. 94 00:05:47,079 --> 00:05:49,765 Mas tenha certeza de dominar o básico primeiro. 95 00:05:49,765 --> 00:05:51,000 Legendado por [Gabriel Mello Fernandes] Revisado por [Alberto Oliveira]