Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Não entendi a lógica do evento keyIsDown()

Para movimentar a raquete para cima, é necessário diminuir o valor de y se a tecla "seta para cima" estiver pressionada. Se o movimento for para baixo, tecla "seta para baixo" pressionada, então o valor de y precisa aumentar. Não entendi por qual motivo funciona assim, sendo que no plano cartesiano se o valor de y aumenta, o ponto fica mais para cima e se diminui, mais para baixo. Socorro!

5 respostas

Olá Diego, tudo bem?

Muito pertinente a sua pergunta, isso se dá pela forma como o Canva é criado no P5Js!

Você esta pensando no plano cartesiano onde a origem está no centro da tela, isso? Mas no P5Js por padrão ele cria o ponto (0,0) no canto superior esquerdo, ou seja:

Se você criou um Canvas de tamanho 500x400, ele vai começar do canto superior esquerdo (0,0) até o canto superior direito (500,0) para o eixo X e do canto superior esquerdo (0,0) até o canto inferior esquerdo (0,400) para o eixo Y, portanto o canto inferior direito seria (500,400)

Concorda comigo que, com isso em mente, se você tiver um círculo no ponto (100,100) e quiser que ele suba 20px, você precisa diminuir o eixo Y dele, já que a numeração aumenta de cima pra baixo? No final, ele subiu e foi para (100,80)!!!

Espero que tenha ajudado, qualquer coisa é só mandar aqui

Bons estudos!

Oi Gustavo. Tudo bem e vc?

Muito obrigado por sua resposta. Confesso que continuo em dúvida. Tendo em vista que o ponto (0,0) está no canto superior esquerdo do plano, logo, se quisermos "descer" o ponto, penso que deveríamos diminuir o valor de Y e não aumentá-lo.

Obrigado!

solução!

Bacana Diego, mas pensa comigo

Se o ponto 0 no y, é o topo da tela, e você precisa chegar no meio vertical da tela, que nesse exemplo seria 200, você teria que aumentar o valor de y, não?

Se eu estiver no y = 0 e diminuir o valor de y, ele vai começar a assumir valores negativos, ou seja, vai passar do topo e vai sair da tela.

É um pouco contra intuitivo mesmo, mas o plano cartesiano que aprendemos na escola começa com o (0,0) no centro e aumenta para cima e para a direita, aqui a única diferença é que aumenta para baixo e para a direita, já que ele desenha o Canvas no mesmo sentido que utilizamos na leitura ocidental(Da esquerda para a direita e de cima para baixo)

Na programação, e até mesmo na matemática, vemos muito dessas convenções e dependendo das linguagens ou dos autores essas "regrinhas" podem mudar, mas o que realmente vale é a lógica, tendo a mesma lógica por trás, no final o resultado é o mesmo!

Se você pesquisar poderá até ver que quando aprendemos planos de 3D na escola, utilizamos o eixo Z como o eixo da altura, mas hoje em dia é muito mais comum utiliza-lo como eixo de profundidade, ou seja, não é uma regra fixa!

Ainda ficou alguma dúvida? Se sim, não hesite em responder!

Maravilha Gustavo, muito obrigado! Eu de fato estava com o pensamento influenciado pelo conceito do plano cartesiano ensinado na escola, com quatro quadrantes, em que todos os valores de y abaixo do eixo x são negativos e vão diminuindo no sentido de cima para baixo. Por isso a minha confusão. Porém, com a sua explicação, agora ficou claro.

Agradeço imensamente!

Ah, que ótimo, fico feliz que te ajudei com sua dúvida!

Como sua dúvida foi sanada, posso pedir para marcar ela como "Solução" aqui no fórum?

Dessa forma se alguém também estiver com dúvida nisso e vier ao fórum ela já vê que está resolvido e não precisa criar um tópico novo!