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

[Dúvida] verificaColisaoRaquete não está fencionando

vou deixar meu código inteiro aqui, realmente nn sei oq pode estar causando o problema, por favor preciso de ajuda com isso

1. //variáveis da bolinha
2. let xBolinha = 300;
3. let yBolinha = 200;
4. let diametro = 20;
5. let raio = diametro / 2 ;
6. 
7. 
8. //velocidade da bolinha
9. let velocidadeXBolinha = 6;
10. let velocidadeYBolinha = 6;
11. 
12. //varíaveis da raquete
13. let xRaquete = 5;
14. let yRaquete = 150;
15. let raquetecomprimento = 10;
16. let raquetealtura = 90;
17. 
18. function setup() {
19.   createCanvas(600, 400);
20. }
21. 
22. function draw() {
23.   background(0);
24.   mostraBolinha();
25.   movimentaBolinha();
26.   verificaColisaoBorda();
27.   mostraRaquete();
28.   movimentaMinhaRaquete()
29.   verificaColisaoRaquete();
30. }
31. 
32. function mostraBolinha(){
33.   circle(xBolinha, yBolinha, diametro);
34. }
35. 
36. function movimentaBolinha(){
37.   xBolinha += velocidadeXBolinha;
38.   yBolinha += velocidadeYBolinha;
39. }
40. 
41. function verificaColisaoBorda(){
42.   if (xBolinha + raio> width ||
43.      xBolinha - raio < 0){
44.      velocidadeXBolinha *= -1;
45.     }
46.   if(yBolinha + raio > height ||
47.     yBolinha - raio < 0){
48.     velocidadeYBolinha *= -1;
49.   }
50. }
51. 
52. function mostraRaquete(){
53.   rect(xRaquete, yRaquete, raquetecomprimento, raquetealtura);
54. }
55. 
56. function movimentaMinhaRaquete(){
57.   if (keyIsDown(UP_ARROW)){
58.     yRaquete -= 10;
59.   }
60.   
61.   function movimentaMinhaRaquete(){}
62.   if (keyIsDown(DOWN_ARROW)){
63.     yRaquete += 10;
64.   }
65. }
66. 
67. function verificaColisaoRaquete(){
68.   if (xBolinha - raio < xRaquete + raqueteComprimento
69. && yBolinha - raio < yRaquete + raqueteAltura
70. && yBolinha + raio > yRaquete){
71.         velocidadeXBolinha *= -1;
72.     }
73. }
74.

esse é o erro que aparece: Error at line 68 in verificaColisaoRaquete() └[blob:https://preview.p5js.org/3906cef8-5fde-4907-ade1-4d50617bf581:29:3] Called from line 29 in draw()

Desculpa a bagunça com os códigos, ainda sou novo na plataforma e nn sei usar direito

2 respostas
solução!

Olá, Bruno! Como vai?

O problema está na declaração das variáveis da raquete. No início do seu código, você declarou as variáveis como raquetecomprimento e raquetealtura (linhas 15 e 16), mas na função verificaColisaoRaquete() (linhas 67 a 73), você está usando raqueteComprimento e raqueteAltura.

O JavaScript diferencia letras maiúsculas de minúsculas. Portanto, raquetecomprimento e raqueteComprimento são consideradas duas variáveis diferentes.

Para resolver o problema, você precisa alterar as variáveis na função verificaColisaoRaquete() para corresponderem às que você declarou no início do seu código. O trecho corrigido ficaria assim:

function verificaColisaoRaquete(){
   if (xBolinha - raio < xRaquete + raquetecomprimento
   && yBolinha - raio < yRaquete + raquetealtura
   && yBolinha + raio > yRaquete){
         velocidadeXBolinha *= -1;
     }
}

Fazendo essa alteração, a função verificaColisaoRaquete() deve funcionar corretamente.

Espero ter ajudado. Fico à disposição!

Abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Obrigado Nícolas, funcionou sim, vlw mesmo, bons estudos pra vc também, abraços!