0:00:00.938,0:00:04.358 Até agora, nós vimos como [br]criar um vetor e acessá-lo 0:00:04.378,0:00:06.430 Assim como em outras [br]variáveis, no entanto, 0:00:06.430,0:00:08.568 uma das coisas bem legais sobre vetores 0:00:08.568,0:00:12.336 é a maneira que podemos modificá-los[br]dinamicamente enquanto um programa roda. 0:00:13.015,0:00:15.421 Ok, deixe-me mostrar o que [br]eu quis dizer com isso. 0:00:15.421,0:00:17.888 Então aqui nós temos este programa que [br] 0:00:17.888,0:00:20.697 mostra Hopper segurando [br]alguns balões, super fofo. 0:00:21.393,0:00:25.219 E então isso funciona da seguinte forma: [br]nós temos esse vetor xPositions 0:00:25.219,0:00:29.598 que possui dois números dentro que [br]dizem onde queremos colocar os balões. 0:00:29.598,0:00:32.272 E aqui embaixo nós temos [br]esse laço de repetição, 0:00:32.272,0:00:35.218 e esse laço passa por todos [br]os elementos desse vetor. 0:00:35.637,0:00:40.066 Para cada um deles, é desenhado uma linha [br]do "x" para baixo até o braço do Hooper, 0:00:40.066,0:00:47.263 e então desenha uma elipse em "x" [br]que é 30x40 pixels, e esse é nosso balão. 0:00:47.263,0:00:51.370 Ok, legal. Então agora que [br]sabemos como isso funciona, 0:00:51.370,0:00:54.079 sabemos que se quisermos [br]outro balão aparecendo, 0:00:54.079,0:00:58.596 podemos adicionar um número a este [br]vetor, certo? Como, por exemplo, 300. 0:00:58.596,0:01:02.291 Lindo. Agora nós possuímos [br]três balões para um Hopper feliz. 0:01:02.491,0:01:08.394 Mas digamos que nós queremos dar[br]a um usuário que não sabe programar 0:01:08.394,0:01:10.878 a habilidade de adicionar novos balões. 0:01:10.878,0:01:13.705 Então queremos dar o [br]programa a um usuário e falar: 0:01:13.705,0:01:17.890 "Ei, você pode clicar em qualquer [br]lugar, e o balão irá aparecer." 0:01:17.938,0:01:20.891 Isso não seria legal? Eu acho que seria. 0:01:20.966,0:01:23.663 Então, como faríamos isso? 0:01:23.713,0:01:26.382 Queremos nosso programa mudando[br]ao longo do tempo, certo? 0:01:26.382,0:01:30.515 Toda vez que o usuário clicar, [br]irá aparecer um balão lá. 0:01:30.515,0:01:35.045 Então vamos começar movendo [br]tudo para uma função desenhar 0:01:35.045,0:01:37.902 assim será fácil de mudar[br]ao longo do tempo. 0:01:37.902,0:01:43.197 Nós iremos mover isso para baixo [br]e colocar a indentação aqui. Ok, ótimo. 0:01:43.467,0:01:48.477 Agora nós queremos checar e ver,[br]o usuário está pressionando o mouse agora? 0:01:48.477,0:01:50.663 Bem, podemos fazer isso com o nosso "if". 0:01:50.663,0:01:55.493 Então if(mousePressionado), e [br]então nós faremos alguma coisa. 0:01:55.493,0:01:58.426 O que nós iremos fazer? [br]Se o mouse é pressionado, 0:01:58.426,0:02:01.610 então nós queremos de alguma forma[br]adicionar um número a este vetor. 0:02:01.610,0:02:04.694 E vamos deixar isso com apenas[br]dois elementos de novo. Ok. 0:02:04.694,0:02:07.926 Nós queremos adicionar um [br]número a este vetor de alguma forma. 0:02:07.926,0:02:11.102 Bem, eu irei mostrar uma [br]maneira que podemos fazer isso. 0:02:11.102,0:02:18.389 Então nós podemos dizer [br]xPositons[2] = mouseX; 0:02:18.389,0:02:22.204 Muito bem, e deixe-me [br]mostrar que isso funciona. 0:02:22.204,0:02:26.548 Eu cliquei, e eu tenho um balão.[br]Então, o que isso faz? 0:02:26.548,0:02:33.927 Isso disse, xPositons[2] disse ache esse[br]vetor e encontre o elemento na posição 2, 0:02:33.927,0:02:36.456 e lembre-se que este na[br]verdade é o terceiro elemento, 0:02:36.456,0:02:38.499 porque nossos vetores começam do zero. 0:02:38.499,0:02:42.256 E, se você olhar, não existe terceiro[br]elemento, certo? Não existe nada no lugar. 0:02:42.256,0:02:45.972 Então isso diz para achar isto, e [br]então coloque o mouseX nessa posição. 0:02:45.972,0:02:51.196 Bem, já que não existe nada lá, então [br]muda de nada para mouseX. 0:02:51.196,0:02:54.457 E agora nosso vetor possui[br]três itens de tamanho, 0:02:54.457,0:02:57.030 e esse laço "for" aqui embaixo[br]quando passa pelo vetor, 0:02:57.030,0:03:00.427 irá desenhar o terceiro balão. 0:03:00.427,0:03:04.190 Isso é bem legal, e deixe-me clicar mais[br]um pouco para te mostrar como funciona. 0:03:04.190,0:03:08.932 Você vê que toda vez que eu clico, ele [br]continua desenhando o terceiro balão 0:03:08.932,0:03:11.318 onde quer que eu clique com meu mouse. 0:03:11.318,0:03:15.918 E isso é porque estamos constantemente[br]sobrescrevendo a posição dois. 0:03:15.918,0:03:18.547 A coisa com o índice dois. 0:03:18.547,0:03:23.162 Estamos constantemente [br]sobrescrevendo com o atual mouseX. 0:03:23.162,0:03:28.298 Então nós sempre teremos três balões [br]porque temos esse aqui na posição zero, 0:03:28.298,0:03:34.598 esse na posição um e nós iremos [br]constantemente mudar a posição dois. Ok? 0:03:34.598,0:03:37.173 Então isso é legal, mas o [br]que nós realmente queremos 0:03:37.173,0:03:40.305 é deixar o usuário criar [br]vários balões, certo? 0:03:40.305,0:03:43.435 Para que toda vez que o usuário [br]clicar, apareça um novo balão. 0:03:43.435,0:03:46.245 Então isso significa que devemos [br]constantemente incrementar 0:03:46.245,0:03:50.611 o índice do elemento do vetor[br]em que estamos guardando. 0:03:50.611,0:03:52.562 Não queremos que seja[br]dois todas as vezes, 0:03:52.562,0:03:56.200 nós queremos que seja d\ois, e três,[br]e depois quatro, e cinco, e seis, etc. 0:03:56.200,0:03:59.056 Poderíamos fazer isso tendo uma[br]pequena variável de contagem. 0:03:59.056,0:04:01.004 Então digamos newInd=2; 0:04:01.004,0:04:05.285 Isso é como ela vai ser inicializada, [br]então iremos dizer newlnd em vez de dois. 0:04:05.285,0:04:09.655 E então o que nós realmente [br]queremos fazer é dizer newlnd++ 0:04:09.655,0:04:11.808 Então cada vez adicionamos um a ela. 0:04:11.808,0:04:15.181 Iremos começar com dois, [br]então se torna três e depois quatro. 0:04:15.181,0:04:18.476 Assim, toda vez que é pressionado, [br]aparecem mais. Então vamos testar. 0:04:18.476,0:04:22.278 Ta-da! Vários balões. [br]Festa de balões. Woo! 0:04:22.278,0:04:27.502 Então isso é legal, não é? Mas essa [br]não é a melhor maneira de fazer isso 0:04:27.502,0:04:32.045 pois acontece que adicionar itens a um [br]vetor é algo que queremos fazer muito. 0:04:32.045,0:04:34.666 Então temos uma maneira[br]mais fácil de fazer do que essa. 0:04:34.666,0:04:38.372 Deixe-me deletar algumas[br]coisas que eu fiz. 0:04:38.372,0:04:42.657 Tudo bem, então nós não precisamos [br]disso. Vamos deixar isso comentado. 0:04:42.657,0:04:50.881 Então fazemos isso chamando[br]xPositions.push e então mouseX. 0:04:50.881,0:04:56.261 Então o que estamos fazendo aqui, estamos [br]chamando esse método no vetor xPositions. 0:04:56.261,0:04:58.355 Estamos chamando como[br]um comando em um vetor. 0:04:58.355,0:04:59.598 Estamos dizendo ao vetor, 0:04:59.598,0:05:05.280 "Olha, coloque esse novo valor, que [br]é mouseX, coloque isso no final do vetor." 0:05:05.280,0:05:09.210 Então toda vez que for chamado, [br]toda vez que pressionar o mouse, 0:05:09.210,0:05:12.486 irá olhar para o mouseX [br]e colocá-lo no final do vetor. 0:05:12.486,0:05:17.058 Assim, o vetor ficará maior e maior. [br]Então vamos recomeçar e tentar isto. 0:05:17.058,0:05:22.344 Ta-da, funcionou! E é bem menos código [br]do que nós tínhamos antes. Tudo bem? 0:05:22.508,0:05:25.370 Assim, a maior parte do tempo, [br]você vai querer usar o envio, 0:05:25.370,0:05:27.794 se for adicionar coisas [br]para seu vetor desse jeito. 0:05:27.794,0:05:31.541 E é elegante porque assim você pode ter[br]vetores que crescem durante o programa. 0:05:31.541,0:05:34.397 Como quando você tem uma animação[br]ou usuários fazendo coisas, 0:05:34.397,0:05:36.067 e então você pode fazer muito mais. 0:05:36.397,0:05:41.510 Então você viu 90% do que provavelmente[br]vai fazer com um vetor e jeitos de usá-los 0:05:41.510,0:05:43.798 Mas ainda existe muitas[br]utilidades para um vetor. 0:05:43.798,0:05:47.079 Então se você tiver dúvidas,[br]pergunte na conversa. 0:05:47.079,0:05:49.765 Mas tenha certeza de [br]dominar o básico primeiro. 0:05:49.765,0:05:51.000 Legendado por [Gabriel Mello Fernandes][br]Revisado por [Alberto Oliveira]