[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:01.74,0:00:07.34,Default,,0000,0000,0000,,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. Dialogue: 0,0:00:07.34,0:00:08.64,Default,,0000,0000,0000,,Vamos rever. Dialogue: 0,0:00:08.64,0:00:12.41,Default,,0000,0000,0000,,Primeiro, montamos algumas variáveis iniciais para a posição e a velocidade de uma bola. Dialogue: 0,0:00:12.41,0:00:17.24,Default,,0000,0000,0000,,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, Dialogue: 0,0:00:17.24,0:00:20.91,Default,,0000,0000,0000,,nós pintamos o fundo e desenhamos uma elipse na tela Dialogue: 0,0:00:20.91,0:00:27.78,Default,,0000,0000,0000,,e nós posicionamos a elipse com base na variável position e speed e como eles afetam uns aos outros. Dialogue: 0,0:00:27.78,0:00:31.20,Default,,0000,0000,0000,,Agora, sem as declarações if, a nossa bola não parava de ir para todo o sempre, Dialogue: 0,0:00:31.20,0:00:32.86,Default,,0000,0000,0000,,ou até pressionar reiniciar. Dialogue: 0,0:00:32.86,0:00:36.36,Default,,0000,0000,0000,,Então, nós adicionamos duas declarações if até aqui Dialogue: 0,0:00:36.44,0:00:40.60,Default,,0000,0000,0000,,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. Dialogue: 0,0:00:40.61,0:00:45.31,Default,,0000,0000,0000,,para ser positivo ou negativo para que a bola basicamente saltasse para trás. Dialogue: 0,0:00:45.31,0:00:50.07,Default,,0000,0000,0000,,Portanto, agora só temos essa bola, indo e voltando para sempre. Dialogue: 0,0:00:50.07,0:00:53.67,Default,,0000,0000,0000,,Então isso foi muito legal, e há um monte de animações muito legais que podemos fazer com isso. Dialogue: 0,0:00:53.67,0:00:57.68,Default,,0000,0000,0000,,Mas agora, eu quero adicionar a interação do usuário a este programa. Dialogue: 0,0:00:57.68,0:01:00.07,Default,,0000,0000,0000,,Veja, agora este programa é como um programa de TV. Dialogue: 0,0:01:00.07,0:01:04.94,Default,,0000,0000,0000,,Se você deu-o a um amigo, e seu amigo não sabe programar, não podiam realmente interagir com ele. Dialogue: 0,0:01:04.94,0:01:07.61,Default,,0000,0000,0000,,Tudo o que podiam fazer é vê-lo, o que é legal, Dialogue: 0,0:01:07.61,0:01:10.34,Default,,0000,0000,0000,,mas é muito mais legal se eles poderiam realmente fazer alguma coisa. Dialogue: 0,0:01:10.34,0:01:13.47,Default,,0000,0000,0000,,Então, vamos dar ao usuário algumas maneiras de controlá-lo. Dialogue: 0,0:01:13.47,0:01:20.16,Default,,0000,0000,0000,,Lembre-se que antes aprendemos cerca de duas variáveis globais especiais chamadas mouseX e mouseY. Dialogue: 0,0:01:20.16,0:01:25.97,Default,,0000,0000,0000,,Essas variáveis retornam números que nos dizem sobre a posição atual do mouse do usuário Dialogue: 0,0:01:25.97,0:01:28.78,Default,,0000,0000,0000,,e eles são uma ótima maneira de fazer um programa mais interativo. Dialogue: 0,0:01:28.78,0:01:31.24,Default,,0000,0000,0000,,Então, vamos ver. Como é que podemos usá-las? Dialogue: 0,0:01:31.24,0:01:34.03,Default,,0000,0000,0000,,Bem, devemos usá-las dentro da função draw em algum lugar. Dialogue: 0,0:01:34.03,0:01:39.50,Default,,0000,0000,0000,,Porque esse é o único código que é chamado de uma e outra vez que o programa é executado. Dialogue: 0,0:01:39.50,0:01:44.55,Default,,0000,0000,0000,,Tudo fora desse loop só é chamado uma vez quando o programa começa. Dialogue: 0,0:01:44.55,0:01:48.14,Default,,0000,0000,0000,,Então, não faz sentido usar mouseX e mouseY fora do loop. Dialogue: 0,0:01:48.14,0:01:51.24,Default,,0000,0000,0000,,O usuário ainda não terá a chance de interagir com ele. Dialogue: 0,0:01:51.24,0:01:57.28,Default,,0000,0000,0000,,No sorteio, estamos desenhando a bola em 200 pixels para baixo na tela no momento. Dialogue: 0,0:01:57.28,0:02:01.24,Default,,0000,0000,0000,,Que tal substituir aquele com mouseY? Dialogue: 0,0:02:01.24,0:02:02.74,Default,,0000,0000,0000,,Porque essa é a posição y, certo? Dialogue: 0,0:02:02.74,0:02:08.53,Default,,0000,0000,0000,,Assim, desta forma ele vai apenas adicionar a posição y dependente de onde a coordenada Y do mouse do usuário está. Certo? Dialogue: 0,0:02:08.53,0:02:14.36,Default,,0000,0000,0000,,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. Dialogue: 0,0:02:14.36,0:02:18.20,Default,,0000,0000,0000,,Isso é muito legal. Mas eu quero usar mouseX também. Dialogue: 0,0:02:18.20,0:02:19.86,Default,,0000,0000,0000,,Então, como eu deveria usar isso? Dialogue: 0,0:02:19.86,0:02:22.44,Default,,0000,0000,0000,,Bem, por que não vamos apenas fazer uma outra bola Dialogue: 0,0:02:22.44,0:02:25.94,Default,,0000,0000,0000,,e ter a bola indo na direção oposta: para cima e para baixo. Dialogue: 0,0:02:25.94,0:02:30.03,Default,,0000,0000,0000,,E lá vamos ver o usuário controlar a posição x dessa bola. Dialogue: 0,0:02:30.03,0:02:32.61,Default,,0000,0000,0000,,Então, nós temos de apenas fazer o inverso. Dialogue: 0,0:02:32.61,0:02:40.64,Default,,0000,0000,0000,,Diremos ellipse (position, mouseX, 50, 50). Tudo bem? Dialogue: 0,0:02:40.64,0:02:46.91,Default,,0000,0000,0000,,Confira! Agora, eu tenho essas duas bolas que eu controlo, e indo em direções perpendiculares. Dialogue: 0,0:02:46.91,0:02:50.08,Default,,0000,0000,0000,,Mas, eu ainda não estou feliz. Dialogue: 0,0:02:50.08,0:02:53.44,Default,,0000,0000,0000,,Eu quero dar ao usuário um controle ainda maior. Dialogue: 0,0:02:53.44,0:02:56.94,Default,,0000,0000,0000,,Eu quero dar ao usuário o poder de iniciar a segunda bola. Dialogue: 0,0:02:56.94,0:03:01.41,Default,,0000,0000,0000,,Para realmente trazê-lo à existência, apenas pressionando o seu mouse. Dialogue: 0,0:03:01.41,0:03:07.34,Default,,0000,0000,0000,,Bem, então eu preciso descobrir como dizer que o usuário está pressionando o seu mouse. Dialogue: 0,0:03:07.34,0:03:12.94,Default,,0000,0000,0000,,Felizmente, temos uma variável booleana super especial para isso. Dialogue: 0,0:03:12.94,0:03:19.36,Default,,0000,0000,0000,,É chamada mouseIsPressed e podemos usá-la dentro de um comando if. Dialogue: 0,0:03:19.36,0:03:22.34,Default,,0000,0000,0000,,Então, vamos ver. Esta é a segunda bola. Dialogue: 0,0:03:22.34,0:03:31.94,Default,,0000,0000,0000,,Assim, podemos dizer if (mouseIsPressed) { }, e então vamos mover o comando ellipse para lá. Dialogue: 0,0:03:31.94,0:03:40.86,Default,,0000,0000,0000,,Então, o que isso está fazendo aqui, é dizer ao programa que nós só queremos tirar essa elipse se isso é verdade Dialogue: 0,0:03:40.86,0:03:46.03,Default,,0000,0000,0000,,e mouseIsPressed só será verdadeiro se o usuário está pressionando o seu mouse. Dialogue: 0,0:03:46.03,0:03:48.20,Default,,0000,0000,0000,,Então, vamos tentar. Dialogue: 0,0:03:48.20,0:03:50.34,Default,,0000,0000,0000,,Ta da! Dialogue: 0,0:03:50.34,0:03:53.36,Default,,0000,0000,0000,,Então agora eu posso fazer a bola aparecer sempre que eu aperto. Dialogue: 0,0:03:53.36,0:03:58.41,Default,,0000,0000,0000,,Então está ampliando, a partir desse universo paralelo. Isso! Isso! Isso! Dialogue: 0,0:03:58.41,0:04:00.03,Default,,0000,0000,0000,,É impressionante! Dialogue: 0,0:04:00.03,0:04:04.74,Default,,0000,0000,0000,,Então, a coisa interessante sobre esta variável mouseIsPressed Dialogue: 0,0:04:04.74,0:04:08.80,Default,,0000,0000,0000,,é que ela muda com base no que o usuário faz, e não com base no que o nosso programa faz. Dialogue: 0,0:04:08.80,0:04:13.20,Default,,0000,0000,0000,,E uma vez que a função draw é chamada repetidamente, uma e outra, Dialogue: 0,0:04:13.20,0:04:16.17,Default,,0000,0000,0000,,a saída do nosso programa vai mudar ao longo do tempo Dialogue: 0,0:04:16.17,0:04:18.74,Default,,0000,0000,0000,,apenas com um pouco de entrada do usuário. Dialogue: 0,0:04:18.74,0:04:22.03,Default,,0000,0000,0000,,Com o poder combinado das declarações if e mouseIsPressed, Dialogue: 0,0:04:22.03,0:04:26.24,Default,,0000,0000,0000,,você tem tudo que você precisa para fazer as coisas impressionantes como botões, e os programas de desenho. Dialogue: 0,0:04:26.24,0:04:29.00,Default,,0000,0000,0000,,Woo Hoo! Tradução Por Pedro Camargo.Khan Academy Nickname:@PedroTao