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

Problemas com a colisão bolinha - raquete utilizando p5.collide2d

na parte de colisão fazendo o código manualmente tudo ocorreu como esperado, porem ao utilizar o codigo pego no github, a colisão não acontece, creio ter feito igual a video aula, fiquei com duvida pois o arquivo foi atualizado, será que pode estar faltando algo que foi adicionado depois que preciso acrescentar?

//Variaveis da bolinha
let xBolinha = 300;
let yBolinha = 200;
let diametro = 20;
let raio = diametro/2;

//Velocidade da Bolinha
let velocidadexBolinha = 2;
let velocidadeyBolinha = 2;

//Variaveis da Raquete
let xRaquete = 10;
let yRaquete = 150;
let raqueteComprimento = 10;
let raqueteAltura = 90;

let colidiu = false;

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

function draw(){
  background(0);
  mostraBolinha();
  movimentoBolinha();
  mostraRaquete(xRaquete, yRaquete);
  movimentoRaquete();
  limiteTela();
  colisaoMinhaRaqueteBiblioteca();
}

function mostraBolinha(){
  circle (xBolinha, yBolinha, diametro);
}

function movimentoBolinha(){
  xBolinha += velocidadexBolinha;
  //yBolinha += velocidadeyBolinha;
}

function mostraRaquete(x, y){
  rect (x, y, raqueteComprimento, raqueteAltura);
  }

function movimentoRaquete(){
  if (keyIsDown(UP_ARROW)){
    yRaquete -= 10;}

  if (keyIsDown(DOWN_ARROW)){
    yRaquete += 10;}
}

function limiteTela(){
  if (xBolinha + raio > width ||
      xBolinha - raio < 0){
    velocidadexBolinha *= -1;}

  if (yBolinha + raio > height ||
      yBolinha - raio < 0){
    velocidadeyBolinha *= -1;}
}

  function colisaoMinhaRaqueteBiblioteca (x,y){
   colidiu = collideRectCircle(x, y, raqueteComprimento, raqueteAltura, xBolinha, yBolinha, raio);
    if (colidiu){velocidadeyBolinha *= -1;}  
}
2 respostas
solução!

Fala, Bruno! Tudo bem contigo?

O que ocorre é que a variável velocidadexBolinha é quem deve receber a ação e não a velocidadeyBolinha

  function colisaoMinhaRaqueteBiblioteca (x,y){
   colidiu = collideRectCircle(x, y, raqueteComprimento, raqueteAltura, xBolinha, yBolinha, raio);
    if (colidiu){velocidadexBolinha *= -1;}  
}

Espero ter ajudado

Um abraço e bons estudos

puttzz era isso mesmo! vlw muito obrigado!