1 00:00:00,437 --> 00:00:04,760 Outra animação. Dessa vez temos uma bola se movendo pela tela, 2 00:00:04,760 --> 00:00:06,542 e vocês sabem com isso é feito. 3 00:00:06,542 --> 00:00:09,714 Temos uma variável, "x" que nos diz a posição da bola, 4 00:00:09,714 --> 00:00:14,126 a variável "speed" que nos diz a distância que a bola percorre cada vez. 5 00:00:14,126 --> 00:00:16,414 E o loop onde é redesenhado o fundo toda vez, 6 00:00:16,414 --> 00:00:20,713 preenchendo as cores e desenhando uma elipse a partir da posição x, e toda vez, 7 00:00:20,713 --> 00:00:24,882 mudamos "x" para ter o antigo valor de "x" mais o valor da variável "speed". 8 00:00:24,882 --> 00:00:28,814 Então se deixarmos "speed" menor, e reiniciarmos 9 00:00:28,814 --> 00:00:31,079 veja que a bola se move mais devagar. 10 00:00:31,079 --> 00:00:36,324 Ou posso deixar o valor negativo, e se moverá ao contrário, ou deixar como zero 11 00:00:36,324 --> 00:00:38,210 e bola deve parar de mover. 12 00:00:38,210 --> 00:00:40,481 Mas enquanto a velocidade for maior que zero, 13 00:00:40,481 --> 00:00:43,047 eventualmente a bola irá se mover pela tela. 14 00:00:43,047 --> 00:00:46,043 Sempre posso apertar o botão reiniciar para trazê-la de volta, 15 00:00:46,043 --> 00:00:49,090 mas você sabe, depois de um tempo, isso fica chato. 16 00:00:49,090 --> 00:00:52,677 Você reinicia e reinicia... 17 00:00:52,677 --> 00:00:55,738 E se fizermos assim: Quando a bola atingir o lado direito da tela 18 00:00:55,738 --> 00:01:00,540 em vez de ir para fora da tela como agora, eu quero que ela volte. 19 00:01:00,540 --> 00:01:06,512 Para fazer a bola voltar, é só dizer que a variável "speed" será menos cinco. 20 00:01:06,512 --> 00:01:10,085 Se eu deixar a velocidade negativa, então ela fará o caminho contrário. 21 00:01:10,085 --> 00:01:11,568 Mas ai está o problema. 22 00:01:11,568 --> 00:01:16,693 Eu só quero mudar a velocidade se a bola tiver atingido a lado direto. 23 00:01:16,693 --> 00:01:25,019 Acho que já disse isso. Só quero mudar a velocidade SE ela chegar do lado direito. 24 00:01:25,019 --> 00:01:27,483 Eu acho que isso pede o uso da condicional "if". 25 00:01:27,483 --> 00:01:31,497 Até agora, apenas demos ao computador comandos para correr, e mais nada. 26 00:01:31,497 --> 00:01:32,941 Declarações "if" é como dizer: 27 00:01:32,941 --> 00:01:36,135 "Ei cara, quero que você execute esse código, 28 00:01:36,135 --> 00:01:38,679 mas somente sob circunstâncias específicas." 29 00:01:38,679 --> 00:01:42,524 "Então mude a velocidade da bola só se ela chegar do lado direito". 30 00:01:42,524 --> 00:01:44,688 E aqui está como deve ficar. 31 00:01:44,688 --> 00:01:50,947 O que você precisa fazer é digitar "if" e um par de parênteses e de colchetes. 32 00:01:50,947 --> 00:01:54,343 Dentro do parêntese colocaremos a condição. 33 00:01:54,343 --> 00:01:57,233 E dentro dos colchetes colocaremos o código a ser executado. 34 00:01:57,233 --> 00:02:01,553 Assim, o modo como funciona é: "Se essa condição for verdadeira 35 00:02:01,553 --> 00:02:03,919 execute esse código. Se não for, não incomode." 36 00:02:03,919 --> 00:02:07,255 No nosso caso, a condição é a bola atingir o lado direito da tela. 37 00:02:07,255 --> 00:02:09,851 Como sabemos se a bola atingiu o lado direito? 38 00:02:09,851 --> 00:02:12,967 Temos a variável "x" que nos diz onde a bola está, 39 00:02:12,967 --> 00:02:22,584 e sei que o limite da tela é a posição 400, então vejamos. 40 00:02:22,584 --> 00:02:29,839 Quando "x" for maior que 400, então sabemos que a bola passou do lado direito. 41 00:02:29,839 --> 00:02:31,096 Vejamos como isso funciona 42 00:02:31,096 --> 00:02:34,733 No código a ser executado, como já falei estamos apenas mudando a velocidade. 43 00:02:34,733 --> 00:02:38,271 A velocidade será menos cinco. 44 00:02:38,271 --> 00:02:41,669 Vamos apertar reiniciar e ver o que acontece. 45 00:02:41,669 --> 00:02:45,845 Dessa vez, quando a bola atingir o limite do lado direito, ela volta! 46 00:02:45,845 --> 00:02:47,259 E fica indo pra fora da tela. 47 00:02:47,259 --> 00:02:49,253 Mas podemos fazer o mesmo do outro lado. 48 00:02:49,253 --> 00:02:52,668 Dessa vez, verificaremos se ela atingiu o limite esquerdo. 49 00:02:52,668 --> 00:03:03,047 Isso é, quando "x" for menor que zero, e deixarmos a velocidade positiva de novo. 50 00:03:04,177 --> 00:03:06,638 Vou reiniciar. 51 00:03:06,638 --> 00:03:08,155 E dessa vez... 52 00:03:15,225 --> 00:03:16,578 Funciona. 53 00:03:16,578 --> 00:03:21,026 Sei que estamos verificando se a bola ultrapassou as bordas da tela, 54 00:03:21,042 --> 00:03:23,276 mas parece que passou um pouco das bordas. 55 00:03:23,276 --> 00:03:29,033 Lembrando que esses 2 parâmetros controlam onde o centro da elipse está desenhada. 56 00:03:29,033 --> 00:03:35,267 Agora, quando o centro atingir a borda, metade da elipse terá passado do limite. 57 00:03:35,267 --> 00:03:39,271 Se queremos corrigir isso, vamos parar a elipse um pouco antes. 58 00:03:39,271 --> 00:03:44,607 Se o nosso limite é 400, queremos parar a elipse quando chegar aqui, 59 00:03:44,607 --> 00:03:51,294 e podemos na chamada dessa função dizer que a elipse tem uma largura de 50, 60 00:03:51,294 --> 00:03:57,341 isso significa que do centro até a borda, será de 25. 61 00:03:57,341 --> 00:04:05,099 Então queremos pará-la quando o centro atingir 375, porque é 400 menos 25. 62 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. 63 00:04:10,168 --> 00:04:14,810 Invés de checar se "x" é menor que zero, vou verificar se é menor que 25. 64 00:04:16,970 --> 00:04:20,728 E agora está perfeito! Veja a bola quicando. 65 00:04:20,728 --> 00:04:23,000 Legendado por [Valter Bigeli]. Revisado por [Fernando dos Reis]