1
resposta

Modificação na velocidade y causa a funcao verificaColisaoBorda não funcionar.

Resolvido -- Malz---

Testei o código com let velocidadeXBola = 5; let velocidadeYBola = 5; Tudo funcionou direito.

Ao modificar a velocidade para let velocidadeXBola = 6; let velocidadeYBola = 6;

acompanhar os números usados pelo professor a bolinha agora não reconhece o impacto com a parede. Alguém sabe onde errei?

//Variaves da bola let xBola = 300; let yBola = 200; let diametro = 30; let raio = diametro/2;

//variaveis raquete let xRaq = 5; let yRaq = 150; let widthRaq = 10; let heigthRaq = 90;

//variaveis da velocidade da bola let velocidadeXBola = 5; let velocidadeYBola = 5;

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

function draw() { background(0); mostraBola(); moveBola(); verificaColisaoBorda();

mostraRaq(); moveRaq(); verificaColisaoRaq();

}

function mostraBola(){ circle(xBola,yBola,diametro); }

function moveBola(){ xBola += velocidadeXBola; yBola += velocidadeYBola;}

function moveRaq(){ if(keyIsDown(UP_ARROW)){ yRaq -= 10; } if(keyIsDown(DOWN_ARROW)){ yRaq += 10; }

}

function verificaColisaoBorda(){ if(xBola+raio == width || xBola-raio == 0){ velocidadeXBola *= -1; } if(yBola+raio == height || yBola-raio == 0){ velocidadeYBola *= -1; } }

function mostraRaq(){ rect(xRaq,yRaq,widthRaq,heigthRaq) }

function verificaColisaoRaq(){ if(xBola-raio < xRaq + widthRaq && yBola+raio>yRaq &&yBola-raio<yRaq +heigthRaq ){ velocidadeXBola *=-1; } }

1 resposta

Oi oi, Yan! Tudo certo?

Testei seu código no meu p5.js e percebi que a lógica estava um pouco contrária a que o instrutor trabalhou no curso. Você utilizou o sinal de == na estrutura condicional que verifica a colisão da borda no lugar do sinal de maior que e menor que > <.

Olha só como fica a forma corretinha:

function  verificaColisaoBorda(){
  if(xBola+raio > width || xBola - raio < 0){
    velocidadeXBola *= -1;
  }
  if(yBola+raio > height || yBola - raio < 0){
    velocidadeYBola *= -1;
  }
}

Desse jeito funcionou direitinho, independentemente da aplicação do valor da velocidade da bolinha :)

Outra dica bacana é utilizar a ferramenta inserir bloco de código aqui do fórum. Assim seu código ficará indentado e possibilitará a verificação de erros com mais rapidez. Vou deixar também um link que redireciona para um tópico que ensina sua utilização: Link com tutorial para usar botão inserir bloco de código:

Espero que as informações tenham ajudado!

Um abraço e bons estudos!