Feito.
É mais prudente nessa situação eu criar uma função do objeto ou ser, e dentro dela definir suas propriedades e interações físicas, ou crio as interações físicas na função do ambiente?
Quando há interação de dois objetos, coloco a função de interação no objeto1, no objeto2, nos 2 ou no ambiente?
set bolinha = ...;
function setup(){ criarAmbiente(); }
function ambiente: if(...){ bolinhaRepele }
function bolinha(){ propriedadesDaBolinha}
Ou
set bolinha = ...;
function setup(){ criarAmbiente(); }
function ambiente{ propriedadesDoAmbiente }
function bolinha(){ propriedadesDaBolinha if (...) {bolinhaReage}}
//PROPRIEDADE DA QUADRA
let xTamanho = 600
let yTamanho = 400
//PROPRIEDADES DA RAQUETE
let xRaquete = 5;
let alturaRaquete = 70;
let yRaquete = 200 - alturaRaquete/2;
let larguraRaquete = 10;
let arestasRaquete = 45;
let velocidadeRaquete = 10;
//let xRaqueteMaisLarguraRaquete = xRaquete + larguraRaquete;
//let yRaqueteMaisAlturaRaquete = yRaquete + alturaRaquete;
//PROPRIEDADES DA RAQUETE INIMIGA
let xRaqueteInimiga = 600 - 5 - larguraRaquete;
let yRaqueteInimiga = 200 - alturaRaquete/2;
//PROPRIEDADES DA BOLINHA
let xBolinha = 300;
let yBolinha = 200;
let diametroBolinha = 15;
let raioBolinha = diametroBolinha / 2;
//let xBolinhaMenosRaioBolinha = xBolinha - raioBolinha;
//let yBolinhaMenosRaioBolinha = yBolinha - raioBolinha;
//let yBolinhaMaisRaioBolinha = yBolinha + raioBolinha;
//AÇOES DA BOLINHA
let velocidadeXBolinha = 6;
let velocidadeYBolinha = 6;
//PROPRIEDADES DO PLACAR
let meusPontos = 0;
let pontosOponente = 0;
let colisao = false;
function setup() {
createCanvas(xTamanho, yTamanho);
}
function draw() {
background(50);
}
function draw(){
background(0);
propriedadesDaBolinha();
moverBolinha();
colisaoDaBolinha();
mostrarRaquete(xRaquete, yRaquete);
mostrarRaquete(xRaqueteInimiga, yRaqueteInimiga);
movimentoRaquete();
movimentoRaqueteInimiga();
//verificaColisaoRaquete();
verificaColisaoBolinhaBiblioteca(xRaquete, yRaquete);
verificaColisaoBolinhaBiblioteca(xRaqueteInimiga, yRaqueteInimiga)
incluiPlacar();
marcaPonto();
}
function propriedadesDaBolinha(){
circle(xBolinha, yBolinha, diametroBolinha);
}
function moverBolinha(){
xBolinha += velocidadeXBolinha
yBolinha += velocidadeYBolinha
}
function colisaoDaBolinha(){
if (xBolinha + raioBolinha > width||
xBolinha - raioBolinha < 0){
velocidadeXBolinha *= -1
}
if (yBolinha + raioBolinha > height ||
yBolinha - raioBolinha < 0){
velocidadeYBolinha *= -1
}
}
function mostrarRaquete(x, y){
rect(x , y, larguraRaquete, alturaRaquete, arestasRaquete)
}
function movimentoRaquete(){
if (keyIsDown(UP_ARROW)){
yRaquete -= velocidadeRaquete;
}
if (keyIsDown(DOWN_ARROW)){
yRaquete += velocidadeRaquete;
}
}
function movimentoRaqueteInimiga(){
yRaqueteInimiga = yBolinha
}
function verificaColisaoRaquete(){
if (xBolinha - raioBolinha < xRaquete + larguraRaquete
&& yBolinha - raioBolinha < yRaquete + alturaRaquete
&& yBolinha + raioBolinha > yRaquete) {
velocidadeXBolinha *= -1;
}
}
function verificaColisaoBolinhaBiblioteca(x, y){
colisao =
collideRectCircle(x, y, larguraRaquete, alturaRaquete, xBolinha, yBolinha, raioBolinha);
if (colisao){
velocidadeXBolinha *= -1;
}
}
function incluiPlacar(){
fill(255)
text(meusPontos, xTamanho/2-30, 30)
text(pontosOponente, xTamanho/2+30, 30)
}
function marcaPonto(){
if (xBolinha < 10){
pontosOponente += 1
}
if (xBolinha > xTamanho - 10){
meusPontos += 1
}
}