[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.94,0:00:04.36,Default,,0000,0000,0000,,Até agora, nós vimos como \Ncriar um vetor e acessá-lo Dialogue: 0,0:00:04.38,0:00:06.43,Default,,0000,0000,0000,,Assim como em outras \Nvariáveis, no entanto, Dialogue: 0,0:00:06.43,0:00:08.57,Default,,0000,0000,0000,,uma das coisas bem legais sobre vetores Dialogue: 0,0:00:08.57,0:00:12.34,Default,,0000,0000,0000,,é a maneira que podemos modificá-los\Ndinamicamente enquanto um programa roda. Dialogue: 0,0:00:13.02,0:00:15.42,Default,,0000,0000,0000,,Ok, deixe-me mostrar o que \Neu quis dizer com isso. Dialogue: 0,0:00:15.42,0:00:17.89,Default,,0000,0000,0000,,Então aqui nós temos este programa que \N Dialogue: 0,0:00:17.89,0:00:20.70,Default,,0000,0000,0000,,mostra Hopper segurando \Nalguns balões, super fofo. Dialogue: 0,0:00:21.39,0:00:25.22,Default,,0000,0000,0000,,E então isso funciona da seguinte forma: \Nnós temos esse vetor xPositions Dialogue: 0,0:00:25.22,0:00:29.60,Default,,0000,0000,0000,,que possui dois números dentro que \Ndizem onde queremos colocar os balões. Dialogue: 0,0:00:29.60,0:00:32.27,Default,,0000,0000,0000,,E aqui embaixo nós temos \Nesse laço de repetição, Dialogue: 0,0:00:32.27,0:00:35.22,Default,,0000,0000,0000,,e esse laço passa por todos \Nos elementos desse vetor. Dialogue: 0,0:00:35.64,0:00:40.07,Default,,0000,0000,0000,,Para cada um deles, é desenhado uma linha \Ndo "x" para baixo até o braço do Hooper, Dialogue: 0,0:00:40.07,0:00:47.26,Default,,0000,0000,0000,,e então desenha uma elipse em "x" \Nque é 30x40 pixels, e esse é nosso balão. Dialogue: 0,0:00:47.26,0:00:51.37,Default,,0000,0000,0000,,Ok, legal. Então agora que \Nsabemos como isso funciona, Dialogue: 0,0:00:51.37,0:00:54.08,Default,,0000,0000,0000,,sabemos que se quisermos \Noutro balão aparecendo, Dialogue: 0,0:00:54.08,0:00:58.60,Default,,0000,0000,0000,,podemos adicionar um número a este \Nvetor, certo? Como, por exemplo, 300. Dialogue: 0,0:00:58.60,0:01:02.29,Default,,0000,0000,0000,,Lindo. Agora nós possuímos \Ntrês balões para um Hopper feliz. Dialogue: 0,0:01:02.49,0:01:08.39,Default,,0000,0000,0000,,Mas digamos que nós queremos dar\Na um usuário que não sabe programar Dialogue: 0,0:01:08.39,0:01:10.88,Default,,0000,0000,0000,,a habilidade de adicionar novos balões. Dialogue: 0,0:01:10.88,0:01:13.70,Default,,0000,0000,0000,,Então queremos dar o \Nprograma a um usuário e falar: Dialogue: 0,0:01:13.70,0:01:17.89,Default,,0000,0000,0000,,"Ei, você pode clicar em qualquer \Nlugar, e o balão irá aparecer." Dialogue: 0,0:01:17.94,0:01:20.89,Default,,0000,0000,0000,,Isso não seria legal? Eu acho que seria. Dialogue: 0,0:01:20.97,0:01:23.66,Default,,0000,0000,0000,,Então, como faríamos isso? Dialogue: 0,0:01:23.71,0:01:26.38,Default,,0000,0000,0000,,Queremos nosso programa mudando\Nao longo do tempo, certo? Dialogue: 0,0:01:26.38,0:01:30.52,Default,,0000,0000,0000,,Toda vez que o usuário clicar, \Nirá aparecer um balão lá. Dialogue: 0,0:01:30.52,0:01:35.04,Default,,0000,0000,0000,,Então vamos começar movendo \Ntudo para uma função desenhar Dialogue: 0,0:01:35.04,0:01:37.90,Default,,0000,0000,0000,,assim será fácil de mudar\Nao longo do tempo. Dialogue: 0,0:01:37.90,0:01:43.20,Default,,0000,0000,0000,,Nós iremos mover isso para baixo \Ne colocar a indentação aqui. Ok, ótimo. Dialogue: 0,0:01:43.47,0:01:48.48,Default,,0000,0000,0000,,Agora nós queremos checar e ver,\No usuário está pressionando o mouse agora? Dialogue: 0,0:01:48.48,0:01:50.66,Default,,0000,0000,0000,,Bem, podemos fazer isso com o nosso "if". Dialogue: 0,0:01:50.66,0:01:55.49,Default,,0000,0000,0000,,Então if(mousePressionado), e \Nentão nós faremos alguma coisa. Dialogue: 0,0:01:55.49,0:01:58.43,Default,,0000,0000,0000,,O que nós iremos fazer? \NSe o mouse é pressionado, Dialogue: 0,0:01:58.43,0:02:01.61,Default,,0000,0000,0000,,então nós queremos de alguma forma\Nadicionar um número a este vetor. Dialogue: 0,0:02:01.61,0:02:04.69,Default,,0000,0000,0000,,E vamos deixar isso com apenas\Ndois elementos de novo. Ok. Dialogue: 0,0:02:04.69,0:02:07.93,Default,,0000,0000,0000,,Nós queremos adicionar um \Nnúmero a este vetor de alguma forma. Dialogue: 0,0:02:07.93,0:02:11.10,Default,,0000,0000,0000,,Bem, eu irei mostrar uma \Nmaneira que podemos fazer isso. Dialogue: 0,0:02:11.10,0:02:18.39,Default,,0000,0000,0000,,Então nós podemos dizer \NxPositons[2] = mouseX; Dialogue: 0,0:02:18.39,0:02:22.20,Default,,0000,0000,0000,,Muito bem, e deixe-me \Nmostrar que isso funciona. Dialogue: 0,0:02:22.20,0:02:26.55,Default,,0000,0000,0000,,Eu cliquei, e eu tenho um balão.\NEntão, o que isso faz? Dialogue: 0,0:02:26.55,0:02:33.93,Default,,0000,0000,0000,,Isso disse, xPositons[2] disse ache esse\Nvetor e encontre o elemento na posição 2, Dialogue: 0,0:02:33.93,0:02:36.46,Default,,0000,0000,0000,,e lembre-se que este na\Nverdade é o terceiro elemento, Dialogue: 0,0:02:36.46,0:02:38.50,Default,,0000,0000,0000,,porque nossos vetores começam do zero. Dialogue: 0,0:02:38.50,0:02:42.26,Default,,0000,0000,0000,,E, se você olhar, não existe terceiro\Nelemento, certo? Não existe nada no lugar. Dialogue: 0,0:02:42.26,0:02:45.97,Default,,0000,0000,0000,,Então isso diz para achar isto, e \Nentão coloque o mouseX nessa posição. Dialogue: 0,0:02:45.97,0:02:51.20,Default,,0000,0000,0000,,Bem, já que não existe nada lá, então \Nmuda de nada para mouseX. Dialogue: 0,0:02:51.20,0:02:54.46,Default,,0000,0000,0000,,E agora nosso vetor possui\Ntrês itens de tamanho, Dialogue: 0,0:02:54.46,0:02:57.03,Default,,0000,0000,0000,,e esse laço "for" aqui embaixo\Nquando passa pelo vetor, Dialogue: 0,0:02:57.03,0:03:00.43,Default,,0000,0000,0000,,irá desenhar o terceiro balão. Dialogue: 0,0:03:00.43,0:03:04.19,Default,,0000,0000,0000,,Isso é bem legal, e deixe-me clicar mais\Num pouco para te mostrar como funciona. Dialogue: 0,0:03:04.19,0:03:08.93,Default,,0000,0000,0000,,Você vê que toda vez que eu clico, ele \Ncontinua desenhando o terceiro balão Dialogue: 0,0:03:08.93,0:03:11.32,Default,,0000,0000,0000,,onde quer que eu clique com meu mouse. Dialogue: 0,0:03:11.32,0:03:15.92,Default,,0000,0000,0000,,E isso é porque estamos constantemente\Nsobrescrevendo a posição dois. Dialogue: 0,0:03:15.92,0:03:18.55,Default,,0000,0000,0000,,A coisa com o índice dois. Dialogue: 0,0:03:18.55,0:03:23.16,Default,,0000,0000,0000,,Estamos constantemente \Nsobrescrevendo com o atual mouseX. Dialogue: 0,0:03:23.16,0:03:28.30,Default,,0000,0000,0000,,Então nós sempre teremos três balões \Nporque temos esse aqui na posição zero, Dialogue: 0,0:03:28.30,0:03:34.60,Default,,0000,0000,0000,,esse na posição um e nós iremos \Nconstantemente mudar a posição dois. Ok? Dialogue: 0,0:03:34.60,0:03:37.17,Default,,0000,0000,0000,,Então isso é legal, mas o \Nque nós realmente queremos Dialogue: 0,0:03:37.17,0:03:40.30,Default,,0000,0000,0000,,é deixar o usuário criar \Nvários balões, certo? Dialogue: 0,0:03:40.30,0:03:43.44,Default,,0000,0000,0000,,Para que toda vez que o usuário \Nclicar, apareça um novo balão. Dialogue: 0,0:03:43.44,0:03:46.24,Default,,0000,0000,0000,,Então isso significa que devemos \Nconstantemente incrementar Dialogue: 0,0:03:46.24,0:03:50.61,Default,,0000,0000,0000,,o índice do elemento do vetor\Nem que estamos guardando. Dialogue: 0,0:03:50.61,0:03:52.56,Default,,0000,0000,0000,,Não queremos que seja\Ndois todas as vezes, Dialogue: 0,0:03:52.56,0:03:56.20,Default,,0000,0000,0000,,nós queremos que seja d\ois, e três,\Ne depois quatro, e cinco, e seis, etc. Dialogue: 0,0:03:56.20,0:03:59.06,Default,,0000,0000,0000,,Poderíamos fazer isso tendo uma\Npequena variável de contagem. Dialogue: 0,0:03:59.06,0:04:01.00,Default,,0000,0000,0000,,Então digamos newInd=2; Dialogue: 0,0:04:01.00,0:04:05.28,Default,,0000,0000,0000,,Isso é como ela vai ser inicializada, \Nentão iremos dizer newlnd em vez de dois. Dialogue: 0,0:04:05.28,0:04:09.66,Default,,0000,0000,0000,,E então o que nós realmente \Nqueremos fazer é dizer newlnd++ Dialogue: 0,0:04:09.66,0:04:11.81,Default,,0000,0000,0000,,Então cada vez adicionamos um a ela. Dialogue: 0,0:04:11.81,0:04:15.18,Default,,0000,0000,0000,,Iremos começar com dois, \Nentão se torna três e depois quatro. Dialogue: 0,0:04:15.18,0:04:18.48,Default,,0000,0000,0000,,Assim, toda vez que é pressionado, \Naparecem mais. Então vamos testar. Dialogue: 0,0:04:18.48,0:04:22.28,Default,,0000,0000,0000,,Ta-da! Vários balões. \NFesta de balões. Woo! Dialogue: 0,0:04:22.28,0:04:27.50,Default,,0000,0000,0000,,Então isso é legal, não é? Mas essa \Nnão é a melhor maneira de fazer isso Dialogue: 0,0:04:27.50,0:04:32.04,Default,,0000,0000,0000,,pois acontece que adicionar itens a um \Nvetor é algo que queremos fazer muito. Dialogue: 0,0:04:32.04,0:04:34.67,Default,,0000,0000,0000,,Então temos uma maneira\Nmais fácil de fazer do que essa. Dialogue: 0,0:04:34.67,0:04:38.37,Default,,0000,0000,0000,,Deixe-me deletar algumas\Ncoisas que eu fiz. Dialogue: 0,0:04:38.37,0:04:42.66,Default,,0000,0000,0000,,Tudo bem, então nós não precisamos \Ndisso. Vamos deixar isso comentado. Dialogue: 0,0:04:42.66,0:04:50.88,Default,,0000,0000,0000,,Então fazemos isso chamando\NxPositions.push e então mouseX. Dialogue: 0,0:04:50.88,0:04:56.26,Default,,0000,0000,0000,,Então o que estamos fazendo aqui, estamos \Nchamando esse método no vetor xPositions. Dialogue: 0,0:04:56.26,0:04:58.36,Default,,0000,0000,0000,,Estamos chamando como\Num comando em um vetor. Dialogue: 0,0:04:58.36,0:04:59.60,Default,,0000,0000,0000,,Estamos dizendo ao vetor, Dialogue: 0,0:04:59.60,0:05:05.28,Default,,0000,0000,0000,,"Olha, coloque esse novo valor, que \Né mouseX, coloque isso no final do vetor." Dialogue: 0,0:05:05.28,0:05:09.21,Default,,0000,0000,0000,,Então toda vez que for chamado, \Ntoda vez que pressionar o mouse, Dialogue: 0,0:05:09.21,0:05:12.49,Default,,0000,0000,0000,,irá olhar para o mouseX \Ne colocá-lo no final do vetor. Dialogue: 0,0:05:12.49,0:05:17.06,Default,,0000,0000,0000,,Assim, o vetor ficará maior e maior. \NEntão vamos recomeçar e tentar isto. Dialogue: 0,0:05:17.06,0:05:22.34,Default,,0000,0000,0000,,Ta-da, funcionou! E é bem menos código \Ndo que nós tínhamos antes. Tudo bem? Dialogue: 0,0:05:22.51,0:05:25.37,Default,,0000,0000,0000,,Assim, a maior parte do tempo, \Nvocê vai querer usar o envio, Dialogue: 0,0:05:25.37,0:05:27.79,Default,,0000,0000,0000,,se for adicionar coisas \Npara seu vetor desse jeito. Dialogue: 0,0:05:27.79,0:05:31.54,Default,,0000,0000,0000,,E é elegante porque assim você pode ter\Nvetores que crescem durante o programa. Dialogue: 0,0:05:31.54,0:05:34.40,Default,,0000,0000,0000,,Como quando você tem uma animação\Nou usuários fazendo coisas, Dialogue: 0,0:05:34.40,0:05:36.07,Default,,0000,0000,0000,,e então você pode fazer muito mais. Dialogue: 0,0:05:36.40,0:05:41.51,Default,,0000,0000,0000,,Então você viu 90% do que provavelmente\Nvai fazer com um vetor e jeitos de usá-los Dialogue: 0,0:05:41.51,0:05:43.80,Default,,0000,0000,0000,,Mas ainda existe muitas\Nutilidades para um vetor. Dialogue: 0,0:05:43.80,0:05:47.08,Default,,0000,0000,0000,,Então se você tiver dúvidas,\Npergunte na conversa. Dialogue: 0,0:05:47.08,0:05:49.76,Default,,0000,0000,0000,,Mas tenha certeza de \Ndominar o básico primeiro. Dialogue: 0,0:05:49.76,0:05:51.00,Default,,0000,0000,0000,,Legendado por [Gabriel Mello Fernandes]\NRevisado por [Alberto Oliveira]