WEBVTT 00:00:00.437 --> 00:00:04.760 Outra animação. Dessa vez temos uma bola se movendo pela tela, 00:00:04.760 --> 00:00:06.542 e vocês sabem com isso é feito. 00:00:06.542 --> 00:00:09.714 Temos uma variável, "x" que nos diz a posição da bola, 00:00:09.714 --> 00:00:14.126 a variável "speed" que nos diz a distância que a bola percorre cada vez. 00:00:14.126 --> 00:00:16.414 E o loop onde é redesenhado o fundo toda vez, 00:00:16.414 --> 00:00:20.713 preenchendo as cores e desenhando uma elipse a partir da posição x, e toda vez, 00:00:20.713 --> 00:00:24.882 mudamos "x" para ter o antigo valor de "x" mais o valor da variável "speed". 00:00:24.882 --> 00:00:28.814 Então se deixarmos "speed" menor, e reiniciarmos 00:00:28.814 --> 00:00:31.079 veja que a bola se move mais devagar. 00:00:31.079 --> 00:00:36.324 Ou posso deixar o valor negativo, e se moverá ao contrário, ou deixar como zero 00:00:36.324 --> 00:00:38.210 e bola deve parar de mover. 00:00:38.210 --> 00:00:40.481 Mas enquanto a velocidade for maior que zero, 00:00:40.481 --> 00:00:43.047 eventualmente a bola irá se mover pela tela. 00:00:43.047 --> 00:00:46.043 Sempre posso apertar o botão reiniciar para trazê-la de volta, 00:00:46.043 --> 00:00:49.090 mas você sabe, depois de um tempo, isso fica chato. 00:00:49.090 --> 00:00:52.677 Você reinicia e reinicia... 00:00:52.677 --> 00:00:55.738 E se fizermos assim: Quando a bola atingir o lado direito da tela 00:00:55.738 --> 00:01:00.540 em vez de ir para fora da tela como agora, eu quero que ela volte. 00:01:00.540 --> 00:01:06.512 Para fazer a bola voltar, é só dizer que a variável "speed" será menos cinco. 00:01:06.512 --> 00:01:10.085 Se eu deixar a velocidade negativa, então ela fará o caminho contrário. 00:01:10.085 --> 00:01:11.568 Mas ai está o problema. 00:01:11.568 --> 00:01:16.693 Eu só quero mudar a velocidade se a bola tiver atingido a lado direto. 00:01:16.693 --> 00:01:25.019 Acho que já disse isso. Só quero mudar a velocidade SE ela chegar do lado direito. 00:01:25.019 --> 00:01:27.483 Eu acho que isso pede o uso da condicional "if". 00:01:27.483 --> 00:01:31.497 Até agora, apenas demos ao computador comandos para correr, e mais nada. 00:01:31.497 --> 00:01:32.941 Declarações "if" é como dizer: 00:01:32.941 --> 00:01:36.135 "Ei cara, quero que você execute esse código, 00:01:36.135 --> 00:01:38.679 mas somente sob circunstâncias específicas." 00:01:38.679 --> 00:01:42.524 "Então mude a velocidade da bola só se ela chegar do lado direito". 00:01:42.524 --> 00:01:44.688 E aqui está como deve ficar. 00:01:44.688 --> 00:01:50.947 O que você precisa fazer é digitar "if" e um par de parênteses e de colchetes. 00:01:50.947 --> 00:01:54.343 Dentro do parêntese colocaremos a condição. 00:01:54.343 --> 00:01:57.233 E dentro dos colchetes colocaremos o código a ser executado. 00:01:57.233 --> 00:02:01.553 Assim, o modo como funciona é: "Se essa condição for verdadeira 00:02:01.553 --> 00:02:03.919 execute esse código. Se não for, não incomode." 00:02:03.919 --> 00:02:07.255 No nosso caso, a condição é a bola atingir o lado direito da tela. 00:02:07.255 --> 00:02:09.851 Como sabemos se a bola atingiu o lado direito? 00:02:09.851 --> 00:02:12.967 Temos a variável "x" que nos diz onde a bola está, 00:02:12.967 --> 00:02:22.584 e sei que o limite da tela é a posição 400, então vejamos. 00:02:22.584 --> 00:02:29.839 Quando "x" for maior que 400, então sabemos que a bola passou do lado direito. 00:02:29.839 --> 00:02:31.096 Vejamos como isso funciona 00:02:31.096 --> 00:02:34.733 No código a ser executado, como já falei estamos apenas mudando a velocidade. 00:02:34.733 --> 00:02:38.271 A velocidade será menos cinco. 00:02:38.271 --> 00:02:41.669 Vamos apertar reiniciar e ver o que acontece. 00:02:41.669 --> 00:02:45.845 Dessa vez, quando a bola atingir o limite do lado direito, ela volta! 00:02:45.845 --> 00:02:47.259 E fica indo pra fora da tela. 00:02:47.259 --> 00:02:49.253 Mas podemos fazer o mesmo do outro lado. 00:02:49.253 --> 00:02:52.668 Dessa vez, verificaremos se ela atingiu o limite esquerdo. 00:02:52.668 --> 00:03:03.047 Isso é, quando "x" for menor que zero, e deixarmos a velocidade positiva de novo. 00:03:04.177 --> 00:03:06.638 Vou reiniciar. 00:03:06.638 --> 00:03:08.155 E dessa vez... 00:03:15.225 --> 00:03:16.578 Funciona. 00:03:16.578 --> 00:03:21.026 Sei que estamos verificando se a bola ultrapassou as bordas da tela, 00:03:21.042 --> 00:03:23.276 mas parece que passou um pouco das bordas. 00:03:23.276 --> 00:03:29.033 Lembrando que esses 2 parâmetros controlam onde o centro da elipse está desenhada. 00:03:29.033 --> 00:03:35.267 Agora, quando o centro atingir a borda, metade da elipse terá passado do limite. 00:03:35.267 --> 00:03:39.271 Se queremos corrigir isso, vamos parar a elipse um pouco antes. 00:03:39.271 --> 00:03:44.607 Se o nosso limite é 400, queremos parar a elipse quando chegar aqui, 00:03:44.607 --> 00:03:51.294 e podemos na chamada dessa função dizer que a elipse tem uma largura de 50, 00:03:51.294 --> 00:03:57.341 isso significa que do centro até a borda, será de 25. 00:03:57.341 --> 00:04:05.099 Então queremos pará-la quando o centro atingir 375, porque é 400 menos 25. 00:04:05.099 --> 00:04:10.168 Então ao invés de checar se "x" é maior que 400, verificamos se é maior que 375. 00:04:10.168 --> 00:04:14.810 Invés de checar se "x" é menor que zero, vou verificar se é menor que 25. 00:04:16.970 --> 00:04:20.728 E agora está perfeito! Veja a bola quicando. 00:04:20.728 --> 00:04:23.000 Legendado por [Valter Bigeli]. Revisado por [Fernando dos Reis]