Outra animação. Dessa vez temos uma bola se movendo pela tela, e vocês sabem com isso é feito. Temos uma variável, "x" que nos diz a posição da bola, a variável "speed" que nos diz a distância que a bola percorre cada vez. E o loop onde é redesenhado o fundo toda vez, preenchendo as cores e desenhando uma elipse a partir da posição x, e toda vez, mudamos "x" para ter o antigo valor de "x" mais o valor da variável "speed". Então se deixarmos "speed" menor, e reiniciarmos veja que a bola se move mais devagar. Ou posso deixar o valor negativo, e se moverá ao contrário, ou deixar como zero e bola deve parar de mover. Mas enquanto a velocidade for maior que zero, eventualmente a bola irá se mover pela tela. Sempre posso apertar o botão reiniciar para trazê-la de volta, mas você sabe, depois de um tempo, isso fica chato. Você reinicia e reinicia... E se fizermos assim: Quando a bola atingir o lado direito da tela em vez de ir para fora da tela como agora, eu quero que ela volte. Para fazer a bola voltar, é só dizer que a variável "speed" será menos cinco. Se eu deixar a velocidade negativa, então ela fará o caminho contrário. Mas ai está o problema. Eu só quero mudar a velocidade se a bola tiver atingido a lado direto. Acho que já disse isso. Só quero mudar a velocidade SE ela chegar do lado direito. Eu acho que isso pede o uso da condicional "if". Até agora, apenas demos ao computador comandos para correr, e mais nada. Declarações "if" é como dizer: "Ei cara, quero que você execute esse código, mas somente sob circunstâncias específicas." "Então mude a velocidade da bola só se ela chegar do lado direito". E aqui está como deve ficar. O que você precisa fazer é digitar "if" e um par de parênteses e de colchetes. Dentro do parêntese colocaremos a condição. E dentro dos colchetes colocaremos o código a ser executado. Assim, o modo como funciona é: "Se essa condição for verdadeira execute esse código. Se não for, não incomode." No nosso caso, a condição é a bola atingir o lado direito da tela. Como sabemos se a bola atingiu o lado direito? Temos a variável "x" que nos diz onde a bola está, e sei que o limite da tela é a posição 400, então vejamos. Quando "x" for maior que 400, então sabemos que a bola passou do lado direito. Vejamos como isso funciona No código a ser executado, como já falei estamos apenas mudando a velocidade. A velocidade será menos cinco. Vamos apertar reiniciar e ver o que acontece. Dessa vez, quando a bola atingir o limite do lado direito, ela volta! E fica indo pra fora da tela. Mas podemos fazer o mesmo do outro lado. Dessa vez, verificaremos se ela atingiu o limite esquerdo. Isso é, quando "x" for menor que zero, e deixarmos a velocidade positiva de novo. Vou reiniciar. E dessa vez... Funciona. Sei que estamos verificando se a bola ultrapassou as bordas da tela, mas parece que passou um pouco das bordas. Lembrando que esses 2 parâmetros controlam onde o centro da elipse está desenhada. Agora, quando o centro atingir a borda, metade da elipse terá passado do limite. Se queremos corrigir isso, vamos parar a elipse um pouco antes. Se o nosso limite é 400, queremos parar a elipse quando chegar aqui, e podemos na chamada dessa função dizer que a elipse tem uma largura de 50, isso significa que do centro até a borda, será de 25. Então queremos pará-la quando o centro atingir 375, porque é 400 menos 25. Então ao invés de checar se "x" é maior que 400, verificamos se é maior que 375. Invés de checar se "x" é menor que zero, vou verificar se é menor que 25. E agora está perfeito! Veja a bola quicando. Legendado por [Valter Bigeli]. Revisado por [Fernando dos Reis]