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

Problema na Colisão.

Oi pessoal, boa noite. Embora eu tenha olhado os tópicos, e testado as mesmas soluções, o meu problema de colisão persiste, e eu não estou sabendo o que pode ser. Olhei em todos os tópicos, mas não consegui entender e saber o que está acontecendo com o meu codigo. A bolinha continua atravessando a raquete.

Se alguém conseguir me ajuda, agradeceria muito.

//Bolinha let xBolinha = 300; let yBolinha = 200; let diametro = 30;

//Velocidade da bolinha let xVelBolinha = 4; let yVelBolinha = 4;

//efeito da borda let raio = diametro / 2;

//Raquete let xRaquete = 5; let yRaquete = 150; let compRac = 10; let alturaRaquete = 90;

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

function draw() { background(0); aBolinha(); aVeldaBolinha(); colisaoBolinha(); aRaquete(); movimentaRaquete(); } function aBolinha() { circle(xBolinha, yBolinha, diametro); } function aVeldaBolinha() { xBolinha += xVelBolinha; yBolinha += yVelBolinha; }

function colisaoBolinha() { if (xBolinha + raio > width || xBolinha - raio < 0) { xVelBolinha *= -1; } if (yBolinha + raio > height || yBolinha - raio < 0) { yVelBolinha *= -1; } } function aRaquete() { rect(xRaquete, yRaquete, compRac, alturaRaquete); }

function movimentaRaquete() { if (keyIsDown(UP_ARROW)) { yRaquete -= 10; } if (keyIsDown(DOWN_ARROW)) { yRaquete += 10; } function verificaColisaoRaquete(){ if(xBolinha- raio< xRaquete + compRac && yBolinha - raio< yRaquete + alturaRaquete && yBolinha + raio > yRaquete){ xVelBolinha *= -1; } } }

3 respostas

Olá, Wellington! Acho que você se esqueceu de incluir a function verificaColisaoRaquete() dentro da function draw().

Então, quando eu coloco a function dentro de Draw da um erro. Eu li mas não entendi. Da esse erro.

ReferenceError: verificaColisaoRaquete is not defined

p5.js says: There's an error due to "verificaColisaoRaquete" not being defined in the current scope (on line 30 in sketch.js [/sketch.js:30:3]).

If you have defined it in your code, you should check its scope, spelling, and letter-casing (JavaScript is case-sensitive). For more: https://p5js.org/examples/data-variable-scope.html https://developer.mozilla.org/docs/Web/JavaScript/Reference/Errors/Not_Defined#What_went_wrong

Tentei ler os links, mas não entendi o que está errado ainda assim.

solução!

Mexendo no codigo acabei descobrindo o erro. Eu estava colocando a Function no lugar errado. A function estava dentro de outra function, por isso não funcionava. Agora eu arrumei.

Antes

function colisaoBolinha() { if (xBolinha + raio > width || xBolinha - raio < 0) { xVelBolinha *= -1; } if (yBolinha + raio > height || yBolinha - raio < 0) { yVelBolinha *= -1; } } function aRaquete() { rect(xRaquete, yRaquete, compRac, alturaRaquete); }

function movimentaRaquete() { if (keyIsDown(UP_ARROW)) { yRaquete -= 10; } if (keyIsDown(DOWN_ARROW)) { yRaquete += 10; } function verificaColisaoRaquete(){ if(xBolinha- raio< xRaquete + compRac && yBolinha - raio< yRaquete + alturaRaquete && yBolinha + raio > yRaquete){ xVelBolinha *= -1; } } }

Depois

function movimentaRaquete() { if (keyIsDown(UP_ARROW)) { yRaquete -= 10; } if (keyIsDown(DOWN_ARROW)) { yRaquete += 10; }

} function verificaColisaoRaquete(){ if(xBolinha- raio< xRaquete + compRac && yBolinha - raio< yRaquete + alturaRaquete && yBolinha + raio > yRaquete){ xVelBolinha *= -1; } }