Oi pessoal, tudo bem? Sou totalmente iniciante na programação e gostaria de compartilhar uma coisa que fiz em meu código: eu organizei de um modo diferente algumas funções e as separei em variáveis, vide pontos da bolinha, pontos da raquete e pontos da raquete do oponente. Durante o código, foi mais intuitivo montar algumas funções. Toda possibilidade de deixar o código mais organizado é válido :) espero que gostem!
// variáveis da bolinha
let xBolinha = 300;
let yBolinha = 200;
diametro = 13;
raio = diametro / 2;
// pontos da bolinha
let superiorBolinha = yBolinha - raio;
let esquerdaBolinha = xBolinha - raio;
let inferiorBolinha = yBolinha + raio;
let direitaBolinha = xBolinha + raio;
//velocidade de movimento da bolinha
let velocidadexBolinha = 6;
let velocidadeyBolinha = 6;
//variáveis da raquete
let xRaquete = 5;
let yRaquete = 150;
let larguraRaquete = 10;
let alturaRaquete = 90;
//pontos da raquete
let superiorRaquete = yRaquete;
let direitaRaquete = xRaquete + larguraRaquete;
let inferiorRaquete = yRaquete + alturaRaquete;
//variáveis da raquete oponente
let xRaqueteOponente = 585;
let yRaqueteOponente = 5;
let velocidadeyRaqueteOponente;
//pontos da raquete do oponente
let superiorRaqueteOponente = yRaqueteOponente + alturaRaquete;
let esquerdaRaqueteOponente = xRaqueteOponente;
let inferiorRaqueteOponente = yRaqueteOponente - alturaRaquete
//placar do jogo
let meusPontos = 0;
let pontosOponente = 0;
//sons do jogo
let raquetada;
let ponto;
let trilha;
//oponente
let chanceDeErrar = 0;
// ~~ INÍCIO DO CÓDIGO ~~ //
function preload(){
trilha = loadSound("trilha.mp3");
ponto = loadSound("ponto.mp3");
raquetada = loadSound("raquetada.mp3");
}
function setup() {
createCanvas(600, 400);
trilha.loop();
}
function draw() {
background(0);
mostrarbolinha();
movimentobolinha();
colisaobolinha();
mostrarraquete();
movimentoraquete();
verificacolisaoraquete();
mostrarraqueteoponente();
movimentoraqueteoponente();
verificarcolisaoraqueteoponente();
incluirplacar();
marcarponto();
}
function mostrarbolinha(){
circle(xBolinha, yBolinha, diametro);
}
function movimentobolinha(){
xBolinha += velocidadexBolinha;
yBolinha += velocidadeyBolinha;
superiorBolinha = yBolinha - raio;
esquerdaBolinha = xBolinha - raio;
inferiorBolinha = yBolinha + raio;
direitaBolinha = xBolinha + raio;
}
function colisaobolinha(){
if (xBolinha + raio > width ||
xBolinha - raio < 0 )
velocidadexBolinha *= -1;
if (yBolinha +raio > height ||
yBolinha - raio < 0)
velocidadeyBolinha *= -1;
}
function mostrarraquete(){
rect(xRaquete, yRaquete, larguraRaquete, alturaRaquete);
}
function mostrarraqueteoponente(){
rect(xRaqueteOponente, yRaqueteOponente, larguraRaquete, alturaRaquete);
}
function movimentoraquete(){
if (keyIsDown(UP_ARROW)){
yRaquete -= 10;
}
if (keyIsDown(DOWN_ARROW)){
yRaquete += 10;
}
superiorRaquete = yRaquete;
direitaRaquete = xRaquete + larguraRaquete;
inferiorRaquete = yRaquete + alturaRaquete;
yRaquete = constrain(yRaquete, 10, 310);
}
function movimentoraqueteoponente(){
velocidadeyRaqueteOponente = yBolinha - yRaqueteOponente - alturaRaquete / 2 - 30;
yRaqueteOponente += velocidadeyRaqueteOponente
superiorRaqueteOponente = yRaqueteOponente + alturaRaquete;
esquerdaRaqueteOponente = xRaqueteOponente;
inferiorRaqueteOponente = yRaqueteOponente - alturaRaquete
calculaChanceDeErrar ();
yRaqueteOponente = constrain(yRaqueteOponente, 10, 310);
}
function verificacolisaoraquete(){
if (esquerdaBolinha < direitaRaquete && superiorBolinha < inferiorRaquete && inferiorBolinha > superiorRaquete){
velocidadexBolinha *= -1;
raquetada.play();
}
}
function verificarcolisaoraqueteoponente(){
if (direitaBolinha > esquerdaRaqueteOponente && inferiorBolinha < superiorRaqueteOponente && inferiorBolinha > inferiorRaqueteOponente){
velocidadexBolinha *= -1;
raquetada.play();
}
}
function incluirplacar(){
textAlign(CENTER);
textSize(16);
fill(color(131,111,255));
rect(150,10 ,40 ,20);
fill(255);
text(meusPontos, 170, 26);
fill(color(131,111,255));
rect(450,10,40,20);
fill(255);
text(pontosOponente, 470, 26);
//text(pontos,x,y)
}
function marcarponto(){
if (xBolinha > 590){meusPontos += 1;
ponto.play();
}
if (xBolinha < 10){pontosOponente += 1
ponto.play();
}
}
function calculaChanceDeErrar(){
if (pontosOponente >= meusPontos) {
chanceDeErrar += 1
if (chanceDeErrar >= 39){
chanceDeErrar = 40
}
} else {
chanceDeErrar -= 1
if (chanceDeErrar <= 35){
chanceDeErrar = 35}
}
function bolinhaNaoFicaPresa(){
if (XBolinha - raio < 0){
XBolinha = 23
}
}
}