Quando eu adiciono a condição pra não pegar na horizontal de baixo , o código todo da função de colisão se anula sem motivo algum , mas se eu apagar o trecho ela funciona... :
&&
yBolinha + raio < yRetanguloDireito
... mas não funciona na horizontal de baixo, pq não funciona se eu colocar essa condição??????
function setup() {
createCanvas(600, 400);
}
function draw() {
background(0);
mostraBolinha();
movimentaBolinha();
verificaColisaoBorda();
criaRetanguloEsquerdo();
criaRetanguloDireito()
movimentaRetangulo();
verificaColisaoRetanguloEsquerdo();
verificaColisaoRetanguloDireito();
}
let xBolinha=300;
let yBolinha=200;
let Diametro=20;
let velocidadexBolinha= 6;
let velocidadeyBolinha= 6;
let raio = Diametro / 2;
//bolinha funções
function mostraBolinha(){
circle(xBolinha,yBolinha,Diametro);
}
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;
}
}
//funções do retângulo esquerdo
let xRetangulo=20;
let yRetangulo=150;
let horizontalRetangulo= 15;
let verticalRetangulo= 90;
function criaRetanguloEsquerdo(){
rect(xRetangulo,yRetangulo,horizontalRetangulo,verticalRetangulo);
}
function movimentaRetangulo(){
if(keyIsDown(UP_ARROW)){
yRetangulo -= 10;
}
if (keyIsDown(DOWN_ARROW)){
yRetangulo += 10;
}
}
function verificaColisaoRetanguloEsquerdo(){
if(xBolinha - raio < xRetangulo + horizontalRetangulo &&
yBolinha - raio < yRetangulo + verticalRetangulo &&
yBolinha + raio > yRetangulo ){
velocidadexBolinha *= -1;
}
}
//funções retângulo direito
let xRetanguloDireito = 560;
let yRetanguloDireito= 150;
let velocidadeyDireito;
function criaRetanguloDireito(){ rect(xRetanguloDireito,yRetanguloDireito,horizontalRetangulo,verticalRetangulo);
}
function movimentaRetanguloDireito(){
velocidadeyDireito = yBolinha - yRetanguloDireito - verticalRetangulo / 2 - 30;
yRetanguloDireito *=1;
}
function verificaColisaoRetanguloDireito(){
if(xBolinha + raio > xRetanguloDireito &&
yBolinha + raio > yRetanguloDireito + horizontalRetangulo &&
yBolinha + raio < yRetanguloDireito ){
velocidadexBolinha *= -1;
}
}