2
respostas

[Dúvida] eu fiz exatamente o que estava no vídeo mas a bolinha simplesmente atravessa a parede e vaza

aqui o código let xBolinha = 300; let yBolinha = 200; let diametro = 15;

let velocidadeXBolinha = 6; let velocidadeYBolinha = 6;

function setup() { createCanvas(600,400); }

function draw() { background(0); circle(xBolinha,yBolinha,diametro); xBolinha += velocidadeXBolinnha = 6; //yBolinha += velocidadeYBolinnha = 6;

if (xBolinha > width || xBolinha < 0){ velocidadeXBolinha *= -1; } }

2 respostas

Estou vendo que no seu codigo

xBolinha += velocidadeXBolinha = 6 

entao pelo que consigo entender eh que o valor da velocidadeXBolinha sera sempre 6 por mais que voce inverta por -1 depois .... ela voltara ao valor de 6 inves de -6 !! Nao sei se consegui explicar direito e na verdade nem sei se esse pode ser o real problema!! Terminei o curso e estou apenas tentando ajudar kkkkkkk Entao tenta modificar o codigo retirando esse 6 do final , ou seja ...

xBolinha += velocidadeXBolinha 

Oi, eu fiz a "mesma coisa" que estava no video, mas quando a bolinha batia na primeira parede, ela voltava, mas na segunda ela passava direto tbm.

Então verifiquei que no meu código no final em:

Errado:

if (xBolinha > width || xBolinha < 0){ velocidadeXbolinha += -1;

Correto:

if (xBolinha > width || xBolinha < 0){ velocidadeXbolinha *= -1;

Ao invés de colocar o sinal de multiplicar eu estava colocando o sinal de somar, consertei isso e funcionou,