Olá, como vai?
Estou tendo problemas com a parte de "width", já que o programa aponta como não definida (foto anexada abaixo). Como devo prosseguir?
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!
Olá, como vai?
Estou tendo problemas com a parte de "width", já que o programa aponta como não definida (foto anexada abaixo). Como devo prosseguir?
Oi, estou bem e você?
O programa não reconhece o width por não saber o que ele precisa medir. Pra resolver isso é só colocar a condição dentro da função draw() (aí ele vai saber que é o width do cenário criado). Você também pode colocar a condição dentro de uma nova função e chamar ela na função draw().
Muito obrigada!
Não aparece nenhuma notificação de erro após as mudanças sugeridas. Entretando, não consigo visualizar a prévia, aparecendo uma rápida mensagem de "Loading...". Alguma sugestão de como posso corrigir isso? Será que é um erro do sistema ou dos códigos? Abri uma outra aba com o mesmo site e o programa foi capaz de reproduzir até certo ponto, mas a partir código (listado abaixo) apareceu a mensagem.
function draw(width){ if (xBolinha + raio > width || xBolinha - raio < 0) velocidadeXBolinha *= -1; }
function draw(height){ if (yBolinha + raio > height || yBolinha - raio < 0) velocidadeYBolinha *= -1; }
Fiz uns testes aqui e encontrei duas soluções.
1 - Você pode colocar as condições dentro da draw() que você já fez. Ela ficaria assim:
function draw() {
background(0);
circle(xBolinha, yBolinha, diametro);
xBolinha += velocidadeXBolinha;
yBolinha += velocidadeYBolinha;
if (xBolinha + raio > width || xBolinha - raio < 0) {
velocidadeXBolinha *= -1;
}
if (yBolinha + raio > height || yBolinha - raio < 0) {
velocidadeYBolinha *= -1;
}
}2 - Você pode dar um novo nome para a função de colisão e chamar ela dentro da draw(). Desse jeito fica assim:
function draw() {
background(0);
circle(xBolinha, yBolinha, diametro);
xBolinha += velocidadeXBolinha;
yBolinha += velocidadeYBolinha;
verificaColisao();
}
function verificaColisao() {
if (xBolinha + raio > width || xBolinha - raio < 0) {
velocidadeXBolinha *= -1;
}
if (yBolinha + raio > height || yBolinha - raio < 0) {
velocidadeYBolinha *= -1;
}
}Acho que o segundo jeito fica mais organizado, porque o nome da função já explica o que o código faz, mas você pode escolher a opção que achar melhor.
Tentei as duas formas e deu super certo.
Muito obrigada por sua ajuda!