Por que inicialmente preciso declarar a variável colidiu como "false"?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Por que inicialmente preciso declarar a variável colidiu como "false"?
Olá, Bernardo! Tudo bem com você?
Muito interessante sua pergunta. Vamos lá!
a variável colidiu contém um valor boleano. Os operadores lógicos boleanos podem armazenar apenas dois valores, quem são true ou false que corresponde a falso, 0 ou 1. Nesse sentido, o instrutor declarou a colidiu como false porque para entrar na condição e ser validada ela precisa ser verdadeira(true), olha só:
function colisaoMinhaRaqueteBiblioteca() {
colidiu = collideRectCircle(xRaquete, yRaquete, raqueteComprimento, raqueteAltura, xBolinha, yBolinha, raio); //toda essa condição começa como falsa.
if (colidiu) { //Aqui SE toda a condição da colidiu for verdadeira (ou seja, se ela acontecer), isso significa que a bolinha vai entrar na instrução abaixo
velocidadeXBolinha *= -1;
}
}Ficou um pouco mais claro agora?
Fico à disposição caso as dúvidas persistam.
Um abraço e bons estudos!
Oi, Camila!
Ainda não ficou claro para mim. Se dentro da função eu já estou atribuindo um critério para a colisão, por que preciso declarar a varíavel como falsa antes?
Eu fiz um teste e comentei o "//let colidiu = false", isto é, eliminei esta linha do código . E a função de colisão funcionou perfeitamente. Por isso, não estou entendo a necessidade de declarar anteriormente o 'colidiu" como "false".
Olá, Bernardo!
Agora entendi sua pergunta!
Sua observação faz total sentido. A variável let colidiu = false foi inserida pelo instrutor porque é um requisito do código da própria biblioteca collide2d, olha só:
var hit = false;
function draw() {
background(255);
rect(200, 200, 100, 150);
circle(mouseX, mouseY, 100);
hit = collideRectCircle(200, 200, 100, 150, mouseX, mouseY, 100);
// Use vectors as input:
// const mouse = createVector(mouseX, mouseY);
// const rect_start = createVector(200, 200);
// const rect_size = createVector(100, 150);
// const radius = 100;
// hit = collideRectCircleVector(rect_start, rect_size, mouse, radius);
stroke(hit ? color('red') : 0);
print('colliding?', hit);
}A implementação da biblioteca solicita que utilize uma variável que inicializa o estado da colisão como falso. Mas você tem total razão, pois ao inserir a variável na condição, ela automaticamente gera um valor boleano.
Parabéns!
Bons estudos!
Obrigado, Camila!
Agora entendi também o raciocínio do professor!
Valeu!