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

[Dúvida] Quando crio a função abaixo para mostrar a raquete, dá erro e raquete não aparece mais

*os nomes não estão conforme a aula, mas... não encontro onde está o meu erro *

se eu deixo "rect(xRaquete, yRaquete, cRaquete, aRaquete);" na function dawn, funciona normalmente.

//variáveis
let xBo = 300; 
let yBo = 200;
let diametro = 15;
let raio = diametro /2;

//velocidade
let velocidadexBo = 6;
let velocidadeyBo = 6;


//variáveis da raquete
let xRaquete = 5;
let yRaquete = 150;
let cRaquete = 10;
let aRaquete = 100;


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

function draw() {
  background(0);
  showBo();
  //moveBo () ; 
  verification ();
  mostraRaquete ();  
}

function showBo () {
circle(xBo, yBo, diametro);  
}

function moveBo () {
  xBo += velocidadexBo;
  yBo += velocidadeyBo;   
}

function verification (){

  if (xBo + raio > width ||
    xBo - raio < 0){
    velocidadexBo *= -1;
  }

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


function mostraRaquete (){
   rect(xRaquete, yRaquete, cRaquete, aRaquete);
  }

}
2 respostas
solução!

Oi, Iago! Tudo bem?

O problema está ocorrendo apenas porque a função mostraRaquete() está sendo declarada dentro da função verification() e não no escopo global do código, logo, a function draw() não consegue encontrá-la no escopo global do código para executá-la.

Para resolvermos o problema basta tirarmos a função mostraRaquete() do interior da função verification(), deixando esse trecho do código da seguinte forma:

function verification (){

  if (xBo + raio > width ||
    xBo - raio < 0){
        velocidadexBo *= -1;
  }

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

function mostraRaquete (){
   rect(xRaquete, yRaquete, cRaquete, aRaquete);
 }

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

Um forte abraço e bons estudos!

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

obrigado!!!!!!