Olá Mylena, tudo bem?
Primeiramente agradeço por compartilhar seu código comigo, isso facilitou muito o processo.
O que aconteceu no seu código foram alguns equivicos na indentação, pois você fechou algumas functions
onde não precisava, e colocou alguns if´s
dentro de outros if´s
junto com o comando que originava aquele if
, por exemplo nessa funtion
aqui:
function movimentaMinhaRaquete(){
if (keyIsDown(UP_ARROW)){
yRaquete -= 10;
}
}
if(keyIsDown(UP_ARROW)){
yRaquete2 -= 5
if(yRaquete2 < 0){
yRaquete2 = 0
if (keyIsDown (DOWN_ARROW)){
yRaquete += 10;
}
}
Se você olhar com calma a function se encerra aqui:
function movimentaMinhaRaquete(){
if (keyIsDown(UP_ARROW)){
yRaquete -= 10;
}
}
E depois disso os dois if´s
que deveriam estar dentro da funtion
estão "jogadas" no escopo global da página, e aí deu erro.
Outra coisa que acontece depois de acoplar esses if´s
da function
é um erro que é gerado pelo fato de um if
estar dentro de outro, como você pode ver abaixo:
//Começa um if
if(keyIsDown(UP_ARROW)){
//Começa o comando gerado pelo if
yRaquete2 -= 5
//aqui já começa mais outro if
if(yRaquete2 < 0){
//Começa o comando gerado pelo novo if
yRaquete2 = 0
//Começa outro if dentro do if que também está dentro do if inicial
if (keyIsDown (DOWN_ARROW)){
//começa o comando do novo if
yRaquete += 10;
}
//termina o terceiro if
}
//termina o segundo if
Assim como eu especifiquei usando os mini comentários no trecho de código coisinhas assim aconteceram várias vezes em seu código, portanto eu vou liberar abaixo uma versão corrigida do seu código, mas em geral o código está certo, você somente precisa tomar um pouquinho mais de cuidado com onde você começa e termina as partes dos códigos.
O código corrigido e funcionando:
// variaveis da bolinha
let xBolinha = 100;
let yBolinha = 100;
let diametro = 20;
let raio = diametro/ 2
// velocidade da bolinha
let velocidadeXBolinha = 6;
let velocidadeYBolinha = 6;
// variaveis da raquete
let xRaquete = 5;
let yRaquete = 150;
let raqueteComprimento = 10;
let raqueteAltura = 90;
// variaveis outra raquete
let xRaquete2 = 580;
let yRaquete2 = 150;
let raqueteCompriment = 10;
let raqueteAltur = 90;
let colidiu = false;
function setup() {
createCanvas(600, 400);
}
function draw() {
background(0);
mostraBolinha();
movimentaBolinha();
verificaColisaoBorda();
mostraRaquete();
movimentaMinhaRaquete();
verificaColisaoRaquete();
colisaoMinhaRaqueteBiblioteca();
outraRaquete();
}
function movimentaBolinha (){
xBolinha += velocidadeXBolinha;
yBolinha += velocidadeYBolinha;
}
function verificaColisaoBorda (){
if (xBolinha + raio > width ||
xBolinha - raio < 0){
velocidadeXBolinha *= -1;
}
if (yBolinha + raio > height ||
yBolinha - raio < 0){
velocidadeYBolinha *= -1;
}
}
function mostraBolinha (){
circle (xBolinha, yBolinha, diametro);
}
function mostraRaquete (){
rect (xRaquete, yRaquete, raqueteComprimento, raqueteAltura);
}
function movimentaMinhaRaquete(){
if (keyIsDown(UP_ARROW)){
yRaquete -= 10;
}
if(keyIsDown(UP_ARROW)){
yRaquete2 -= 5
}
if(yRaquete2 < 0){
yRaquete2 = 0
}
if (keyIsDown (DOWN_ARROW)){
yRaquete += 10;
}
}
function verificaColisaoRaquete(){
if (xBolinha - raio < xRaquete + raqueteComprimento && yBolinha - raio < yRaquete + raqueteAltura && yBolinha + raio > yRaquete){
velocidadeXBolinha *= -1;
}
}
function colisaoMinhaRaqueteBiblioteca(){
colidiu =
collideRectCircle(xRaquete, yRaquete, raqueteComprimento, raqueteAltura, xBolinha, yBolinha, raio);
if (colidiu){
velocidadeXBolinha *= -1;
}
}
function outraRaquete(){
rect(xRaquete2, yRaquete2, raqueteComprimento, raqueteAltura);
}
Em geral, era isso, se você precisar de mais algo, ou não entendeu alguma coisa que eu falei, é só manifestar-se que eu tentarei explicar de outra forma.
Desde já fico a disposição.
Espero ter ajudado um pouco pelo menos. Um abraço e bons estudos.