3
respostas

Não entendi o funcionamento

if( x > 600) {
            sentido = -1
        } else if (x < 0) {
            sentido = 1;
        }

Não entendo como isso pode estar funcionando. Se X for MAIOR que 600, OK, decrementa (sentido = esquerda) Se não se X for MENOR que 0 ????????????????? Como assim? Nunca essa condição pode ser verdadeira, não entendo como pode estar funcionando.

3 respostas

uai, mas qual o valor de x? se ele for negativo ele é menor que zero e o sentido vai valer 1.

Não sei se entendi, mas nessa situação quando a borda da bola chegar até a borda da tela (600 ou 0) ela inverte seu sentido.

Para ela começar a voltar a andar para a direita ela deve começar a voltar do pixel (0, y, raio) que é o nosso x..

desenhaCirculo(x, y, raio)

Então o if faz todo sentido, quando x receber -1 ele inverte o sentido para 1 e começa a andar novamente para a direita..

Bem se o no if o x for == a 0 por exemplo, a bola iria começar do pixel 1 e não do 0 como deveria ser...

if (x == 0) ...

Bem acho que deve ser isso, até.

A tua duvida é semelhante a de outro aqui do fórum, vou usar a mesma resposta que dei a ele, espero que te ajude a entender como a condição x < 0 é possivel ser verdadeira.

No inicio a variavel x tem o valor de 20 certo e a variavel sentido tem o valor de 1. Com esses valores voce entra no

if( x > 600)

ou seja 20 é maior que 600? não então ele vai para

else if (x < 0)

20 é menor que 0? também não então ele sai dai e vai para

desenhaCirculo(x, 20, 10);
        x = x + sentido;

ele desenha o circulo e depois incrementa o valor de x

20 = 20 + 1;

agora o x vale 21 e ele retorna la para o primeiro if agora com o valor de 21, ele vai repetir isso até o valor dele ser 601 certo?

E ai ele vai perguntar de novo 601 é maior que 600? sim então agora o valor da variavel sentido passa a ser -1.

Ele continua para o else if, 601 é menor que 0? não então ele sai e desenha o circulo e faz o calculo

601 = 601 + -1 que da o valor de 600, agora você entra no primeiro if com o valor de x valendo 600 e o valor da variável sentido sendo -1.

600 é > 600? não então ele vai para o próximo, 600 é < 0? também não então ele sai e desenha o circulo e faz de novo o calculo

600 = 600 + - 1

que resulta em 599, conseguiu entender como ele ta funcionando? Agora ele a bolinha esta voltando? diminuindo o valor de x (do eixo x) até que ele passe a ter o valor de -1 faça o caminho agora o valor de x sendo -1 e vai entender exatamente o que esta acontecendo.