-
Até agora, nós vimos como
criar um vetor e acessá-lo
-
Assim como em outras
variáveis, no entanto,
-
uma das coisas bem legais sobre vetores
-
é a maneira que podemos modificá-los
dinamicamente enquanto um programa roda.
-
Ok, deixe-me mostrar o que
eu quis dizer com isso.
-
Então aqui nós temos este programa que
-
mostra Hopper segurando
alguns balões, super fofo.
-
E então isso funciona da seguinte forma:
nós temos esse vetor xPositions
-
que possui dois números dentro que
dizem onde queremos colocar os balões.
-
E aqui embaixo nós temos
esse laço de repetição,
-
e esse laço passa por todos
os elementos desse vetor.
-
Para cada um deles, é desenhado uma linha
do "x" para baixo até o braço do Hooper,
-
e então desenha uma elipse em "x"
que é 30x40 pixels, e esse é nosso balão.
-
Ok, legal. Então agora que
sabemos como isso funciona,
-
sabemos que se quisermos
outro balão aparecendo,
-
podemos adicionar um número a este
vetor, certo? Como, por exemplo, 300.
-
Lindo. Agora nós possuímos
três balões para um Hopper feliz.
-
Mas digamos que nós queremos dar
a um usuário que não sabe programar
-
a habilidade de adicionar novos balões.
-
Então queremos dar o
programa a um usuário e falar:
-
"Ei, você pode clicar em qualquer
lugar, e o balão irá aparecer."
-
Isso não seria legal? Eu acho que seria.
-
Então, como faríamos isso?
-
Queremos nosso programa mudando
ao longo do tempo, certo?
-
Toda vez que o usuário clicar,
irá aparecer um balão lá.
-
Então vamos começar movendo
tudo para uma função desenhar
-
assim será fácil de mudar
ao longo do tempo.
-
Nós iremos mover isso para baixo
e colocar a indentação aqui. Ok, ótimo.
-
Agora nós queremos checar e ver,
o usuário está pressionando o mouse agora?
-
Bem, podemos fazer isso com o nosso "if".
-
Então if(mousePressionado), e
então nós faremos alguma coisa.
-
O que nós iremos fazer?
Se o mouse é pressionado,
-
então nós queremos de alguma forma
adicionar um número a este vetor.
-
E vamos deixar isso com apenas
dois elementos de novo. Ok.
-
Nós queremos adicionar um
número a este vetor de alguma forma.
-
Bem, eu irei mostrar uma
maneira que podemos fazer isso.
-
Então nós podemos dizer
xPositons[2] = mouseX;
-
Muito bem, e deixe-me
mostrar que isso funciona.
-
Eu cliquei, e eu tenho um balão.
Então, o que isso faz?
-
Isso disse, xPositons[2] disse ache esse
vetor e encontre o elemento na posição 2,
-
e lembre-se que este na
verdade é o terceiro elemento,
-
porque nossos vetores começam do zero.
-
E, se você olhar, não existe terceiro
elemento, certo? Não existe nada no lugar.
-
Então isso diz para achar isto, e
então coloque o mouseX nessa posição.
-
Bem, já que não existe nada lá, então
muda de nada para mouseX.
-
E agora nosso vetor possui
três itens de tamanho,
-
e esse laço "for" aqui embaixo
quando passa pelo vetor,
-
irá desenhar o terceiro balão.
-
Isso é bem legal, e deixe-me clicar mais
um pouco para te mostrar como funciona.
-
Você vê que toda vez que eu clico, ele
continua desenhando o terceiro balão
-
onde quer que eu clique com meu mouse.
-
E isso é porque estamos constantemente
sobrescrevendo a posição dois.
-
A coisa com o índice dois.
-
Estamos constantemente
sobrescrevendo com o atual mouseX.
-
Então nós sempre teremos três balões
porque temos esse aqui na posição zero,
-
esse na posição um e nós iremos
constantemente mudar a posição dois. Ok?
-
Então isso é legal, mas o
que nós realmente queremos
-
é deixar o usuário criar
vários balões, certo?
-
Para que toda vez que o usuário
clicar, apareça um novo balão.
-
Então isso significa que devemos
constantemente incrementar
-
o índice do elemento do vetor
em que estamos guardando.
-
Não queremos que seja
dois todas as vezes,
-
nós queremos que seja d\ois, e três,
e depois quatro, e cinco, e seis, etc.
-
Poderíamos fazer isso tendo uma
pequena variável de contagem.
-
Então digamos newInd=2;
-
Isso é como ela vai ser inicializada,
então iremos dizer newlnd em vez de dois.
-
E então o que nós realmente
queremos fazer é dizer newlnd++
-
Então cada vez adicionamos um a ela.
-
Iremos começar com dois,
então se torna três e depois quatro.
-
Assim, toda vez que é pressionado,
aparecem mais. Então vamos testar.
-
Ta-da! Vários balões.
Festa de balões. Woo!
-
Então isso é legal, não é? Mas essa
não é a melhor maneira de fazer isso
-
pois acontece que adicionar itens a um
vetor é algo que queremos fazer muito.
-
Então temos uma maneira
mais fácil de fazer do que essa.
-
Deixe-me deletar algumas
coisas que eu fiz.
-
Tudo bem, então nós não precisamos
disso. Vamos deixar isso comentado.
-
Então fazemos isso chamando
xPositions.push e então mouseX.
-
Então o que estamos fazendo aqui, estamos
chamando esse método no vetor xPositions.
-
Estamos chamando como
um comando em um vetor.
-
Estamos dizendo ao vetor,
-
"Olha, coloque esse novo valor, que
é mouseX, coloque isso no final do vetor."
-
Então toda vez que for chamado,
toda vez que pressionar o mouse,
-
irá olhar para o mouseX
e colocá-lo no final do vetor.
-
Assim, o vetor ficará maior e maior.
Então vamos recomeçar e tentar isto.
-
Ta-da, funcionou! E é bem menos código
do que nós tínhamos antes. Tudo bem?
-
Assim, a maior parte do tempo,
você vai querer usar o envio,
-
se for adicionar coisas
para seu vetor desse jeito.
-
E é elegante porque assim você pode ter
vetores que crescem durante o programa.
-
Como quando você tem uma animação
ou usuários fazendo coisas,
-
e então você pode fazer muito mais.
-
Então você viu 90% do que provavelmente
vai fazer com um vetor e jeitos de usá-los
-
Mas ainda existe muitas
utilidades para um vetor.
-
Então se você tiver dúvidas,
pergunte na conversa.
-
Mas tenha certeza de
dominar o básico primeiro.
-
Legendado por [Gabriel Mello Fernandes]
Revisado por [Alberto Oliveira]