Return to Video

More Mouse Interaction (Video Version)

  • 0:02 - 0:07
    Em nossa última conversa-through, mostramos como você pode animar uma bola saltando fora das paredes usando a função draw e declarações if.
  • 0:07 - 0:09
    Vamos rever.
  • 0:09 - 0:12
    Primeiro, montamos algumas variáveis iniciais para a posição e a velocidade de uma bola.
  • 0:12 - 0:17
    Em seguida, no loop de empate, o que é que a função especial que é chamada uma e outra vez quando o programa está em execução,
  • 0:17 - 0:21
    nós pintamos o fundo e desenhamos uma elipse na tela
  • 0:21 - 0:28
    e nós posicionamos a elipse com base na variável position e speed e como eles afetam uns aos outros.
  • 0:28 - 0:31
    Agora, sem as declarações if, a nossa bola não parava de ir para todo o sempre,
  • 0:31 - 0:33
    ou até pressionar reiniciar.
  • 0:33 - 0:36
    Então, nós adicionamos duas declarações if até aqui
  • 0:36 - 0:41
    para verificar e ver se a bola estava perto do lado direito da tela, ou do lado esquerdo da tela, e assim for, nós mudamos a velocidade para ser positivo ou negativo para que a bola basicamente saltasse para trás.
  • 0:41 - 0:45
    para ser positivo ou negativo para que a bola basicamente saltasse para trás.
  • 0:45 - 0:50
    Portanto, agora só temos essa bola, indo e voltando para sempre.
  • 0:50 - 0:54
    Então isso foi muito legal, e há um monte de animações muito legais que podemos fazer com isso.
  • 0:54 - 0:58
    Mas agora, eu quero adicionar a interação do usuário a este programa.
  • 0:58 - 1:00
    Veja, agora este programa é como um programa de TV.
  • 1:00 - 1:05
    Se você deu-o a um amigo, e seu amigo não sabe programar, não podiam realmente interagir com ele.
  • 1:05 - 1:08
    Tudo o que podiam fazer é vê-lo, o que é legal,
  • 1:08 - 1:10
    mas é muito mais legal se eles poderiam realmente fazer alguma coisa.
  • 1:10 - 1:13
    Então, vamos dar ao usuário algumas maneiras de controlá-lo.
  • 1:13 - 1:20
    Lembre-se que antes aprendemos cerca de duas variáveis globais especiais chamadas mouseX e mouseY.
  • 1:20 - 1:26
    Essas variáveis retornam números que nos dizem sobre a posição atual do mouse do usuário
  • 1:26 - 1:29
    e eles são uma ótima maneira de fazer um programa mais interativo.
  • 1:29 - 1:31
    Então, vamos ver. Como é que podemos usá-las?
  • 1:31 - 1:34
    Bem, devemos usá-las dentro da função draw em algum lugar.
  • 1:34 - 1:40
    Porque esse é o único código que é chamado de uma e outra vez que o programa é executado.
  • 1:40 - 1:45
    Tudo fora desse loop só é chamado uma vez quando o programa começa.
  • 1:45 - 1:48
    Então, não faz sentido usar mouseX e mouseY fora do loop.
  • 1:48 - 1:51
    O usuário ainda não terá a chance de interagir com ele.
  • 1:51 - 1:57
    No sorteio, estamos desenhando a bola em 200 pixels para baixo na tela no momento.
  • 1:57 - 2:01
    Que tal substituir aquele com mouseY?
  • 2:01 - 2:03
    Porque essa é a posição y, certo?
  • 2:03 - 2:09
    Assim, desta forma ele vai apenas adicionar a posição y dependente de onde a coordenada Y do mouse do usuário está. Certo?
  • 2:09 - 2:14
    Então veja isto. Apenas movendo o meu cursor para cima e para baixo, eu posso mudar a linha que a bola se move longitudinalmente.
  • 2:14 - 2:18
    Isso é muito legal. Mas eu quero usar mouseX também.
  • 2:18 - 2:20
    Então, como eu deveria usar isso?
  • 2:20 - 2:22
    Bem, por que não vamos apenas fazer uma outra bola
  • 2:22 - 2:26
    e ter a bola indo na direção oposta: para cima e para baixo.
  • 2:26 - 2:30
    E lá vamos ver o usuário controlar a posição x dessa bola.
  • 2:30 - 2:33
    Então, nós temos de apenas fazer o inverso.
  • 2:33 - 2:41
    Diremos ellipse (position, mouseX, 50, 50). Tudo bem?
  • 2:41 - 2:47
    Confira! Agora, eu tenho essas duas bolas que eu controlo, e indo em direções perpendiculares.
  • 2:47 - 2:50
    Mas, eu ainda não estou feliz.
  • 2:50 - 2:53
    Eu quero dar ao usuário um controle ainda maior.
  • 2:53 - 2:57
    Eu quero dar ao usuário o poder de iniciar a segunda bola.
  • 2:57 - 3:01
    Para realmente trazê-lo à existência, apenas pressionando o seu mouse.
  • 3:01 - 3:07
    Bem, então eu preciso descobrir como dizer que o usuário está pressionando o seu mouse.
  • 3:07 - 3:13
    Felizmente, temos uma variável booleana super especial para isso.
  • 3:13 - 3:19
    É chamada mouseIsPressed e podemos usá-la dentro de um comando if.
  • 3:19 - 3:22
    Então, vamos ver. Esta é a segunda bola.
  • 3:22 - 3:32
    Assim, podemos dizer if (mouseIsPressed) { }, e então vamos mover o comando ellipse para lá.
  • 3:32 - 3:41
    Então, o que isso está fazendo aqui, é dizer ao programa que nós só queremos tirar essa elipse se isso é verdade
  • 3:41 - 3:46
    e mouseIsPressed só será verdadeiro se o usuário está pressionando o seu mouse.
  • 3:46 - 3:48
    Então, vamos tentar.
  • 3:48 - 3:50
    Ta da!
  • 3:50 - 3:53
    Então agora eu posso fazer a bola aparecer sempre que eu aperto.
  • 3:53 - 3:58
    Então está ampliando, a partir desse universo paralelo. Isso! Isso! Isso!
  • 3:58 - 4:00
    É impressionante!
  • 4:00 - 4:05
    Então, a coisa interessante sobre esta variável mouseIsPressed
  • 4:05 - 4:09
    é que ela muda com base no que o usuário faz, e não com base no que o nosso programa faz.
  • 4:09 - 4:13
    E uma vez que a função draw é chamada repetidamente, uma e outra,
  • 4:13 - 4:16
    a saída do nosso programa vai mudar ao longo do tempo
  • 4:16 - 4:19
    apenas com um pouco de entrada do usuário.
  • 4:19 - 4:22
    Com o poder combinado das declarações if e mouseIsPressed,
  • 4:22 - 4:26
    você tem tudo que você precisa para fazer as coisas impressionantes como botões, e os programas de desenho.
  • 4:26 - 4:29
    Woo Hoo! Tradução Por Pedro Camargo.Khan Academy Nickname:@PedroTao
Title:
More Mouse Interaction (Video Version)
Description:

more » « less
Video Language:
English
Duration:
04:29

Portuguese subtitles

Revisions