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

Mesmo com a função de colisao de raquete a bolinha atravessa

//variaveis da bolinha
let xbolinha = 300;
let ybolinha = 200; 
let dbolinha = 40
let raio = dbolinha / 2 ;

//velocidade da bolinha 
let velocidadexbolinha = 7; 
let velocidadeybolinha = 7;
//variavel da raquete
let xraquete = 5;
let yraquete = 150;
let raquetecomprimento = 10;
let raquetealtura = 90

function setup() {
  createCanvas(600,400);
}
function draw() {
  background(0);
 mostraBolinha();
movimentaBolinha();
 Colisao();
  //variaveis da raquete
  MostrarRaquete();
Movimentaraquete1();
verificacolisaoraquete1
}
function mostraBolinha(){
    circle(xbolinha, ybolinha, dbolinha);
}
function movimentaBolinha(){
  xbolinha += velocidadexbolinha ;
//ybolinha += velocidadeybolinha; 
}
function Colisao(){
  if (xbolinha + raio  > width || 
    xbolinha - raio <0){
  velocidadexbolinha *= -1;
}
  if(ybolinha +raio > height|| 
     ybolinha -raio <0){
    velocidadeybolinha *= -1;
  }
}
function MostrarRaquete(){
   rect(xraquete,yraquete , raquetecomprimento, raquetealtura);
}
function Movimentaraquete1(){
 if (keyIsDown(UP_ARROW)){
   yraquete -=10;
 }
 if (keyIsDown(DOWN_ARROW)){
   yraquete +=10;
 }  
}
function Verificacolisaoraquete1(){
if(xbolinha - raio < xraquete +raquetecomprimento){
 velocidadexbolinha *= -1;  
} 
}

e aparece esse destaque em amarelo Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas
solução!

Oi, Julius! Tudo bem?

É possível notar que a função responsável por verificar a colisão entre a raquete e a bolinha está escrita como: Verificacolisaoraquete1(), entretanto ela está sendo chamada dentro da função draw() com outra grafia: verificacolisaoraquete1 com a letra v inicial minuscula e não maiúscula e sem os parenteses :(), que definem aquele comando como uma função.

Dessa forma, para resolvermos esse problema basta escrevermos Verificacolisaoraquete1() dentro da função draw() ao invés de verificacolisaoraquete1, deixando a função draw() da seguinte maneira:

function draw() {
  background(0);
  mostraBolinha();
  movimentaBolinha();
  Colisao();
  //variaveis da raquete
  MostrarRaquete();
  Movimentaraquete1();
  Verificacolisaoraquete1();
}  

Espero ter ajudado! Caso tenha ficado alguma dúvida sinta-se à vontade em comunicar, estou à disposição!

Um forte abraço e bons estudos!

Caso este post tenha te ajudado, por favor, marcar como solucionado ✓

Resolveu SIM muito obrigado!!