//Variáveis da bolinha
let xBolinha = 300; // Variável da Posição X da bolinha
let yBolinha = 200; // Variável da Posição Y da bolinha
let dBolinha = 15; // Variável do Diametro da bolinha
let rBolinha = dBolinha/2; //Variável do Raio da bolinha
//Variáveis da raquete
let xRaquete = 5;// Variável da Posição X da raquete
let yRaquete = 150; // Variável da Posição Y da raquete
let wRaquete = 10; // Variável da Comprimento da raquete
let hRaquete = 90; // Variável da Largura da raquete
//Variáveis de movimentação da bolinha
let velocidadeXBolinha = 6; // Variável da Velocidade da bolinha no eixo X
let velocidadeYBolinha = 6; // Variável da Velocidade da bolinha no eixo Y
//Variavéis da raquete oponente
let xRaqueteOponente = 585;// Variável da Posição X da raquete do oponente
let yRaqueteOponente = 150; // Variável da Posição Y da raquete do oponente
//Variáveis de movimentação da raquete do oponente
let velocidadeYOponente; // Variável da Velocidade da raquete do oponente
//Variáveis de pontuação
let meusPontos = 0;
let pontosDoOponente = 0;
//Variáveis de condição
let colidiu = false; //Variável assumindo false - não colidiu
function setup() {
createCanvas(600, 400);
}
function draw() {
background(0); // Fundo do Programa
mostraBolinha(); // Chamada da função mostraBolinha()
movimentaBolinha(); // Chamada da função movimentaBolinha()
colisaoBolinha(); // Chamada da função colisaoBolinha()
//verificaColisaoRaquete(); //Chamada da função verificaColisaoRaquete()
verificaColisaoRaquete(xRaquete, yRaquete);// Chamada da função verificaColisaoRaquete com passagem de parametros
mostraRaquete(xRaquete, yRaquete); // Chamada da função mostraRaquete()
mostraRaqueteOponente(xRaqueteOponente, yRaqueteOponente);// Chamada da função mostraRaqueteOponente()
movimentaMinhaRaquete();// Chamada da função movimentaMinhaRaquete()
//movimentaRaqueteOponente();// Chamada da função movimentaRaqueteOponente()
verificaColisaoRaquete(xRaqueteOponente, yRaqueteOponente);// Chamada da função verificaColisaoRaquete com passagem de parametros
incluiPlacar(); // Chamada da função incluirPlacar()
marcaPonto(); //Chamada da função marcaPonto();
}
function mostraBolinha(){ // Função para mostrar a bolinha
circle(xBolinha, yBolinha, dBolinha); // Inicialização da bolinha
}
function movimentaBolinha(){ // Função para movimentar a bolinha
xBolinha += velocidadeXBolinha; // Comando para bolinha se movimentar no eixo X
yBolinha += velocidadeYBolinha; // Comando para bolinha se movimentar no eixo Y
}
function colisaoBolinha(){
if (xBolinha + rBolinha > width || xBolinha - rBolinha < 0){
velocidadeXBolinha *= -1; // Inverter o lado do eixo X da bolinha quando tocar na borda
}
if(yBolinha + rBolinha > height || yBolinha - rBolinha < 0){
velocidadeYBolinha *= -1; // Inverter o lado do eixo Y da bolinha quando tocar na borda
}
}
function verificaColisaoRaquete(){
if(xBolinha - rBolinha < xRaquete + wRaquete && yBolinha - rBolinha < yRaquete+ hRaquete && yBolinha + rBolinha > yRaquete){ //Condição SE para verificar se bolinha está tocando na borda ou na raquete
velocidadeXBolinha *= -1;// Movimentar a bolinha para o outro lado caso seja verdadeiro
}
}
function verificaColisaoRaquete(x, y){ //Importação de trecho de código de outras pessoas
colidiu = collideRectCircle(x, y, wRaquete, hRaquete, xBolinha, yBolinha, rBolinha);
if (colidiu){
velocidadeXBolinha *= -1;// Movimentar a bolinha para o outro lado caso seja verdadeiro
}
}
function mostraRaquete(x, y){ // Função para mostrar a raquete
rect(x, y, wRaquete, hRaquete);
}
function mostraRaqueteOponente(x, y){
rect(x, y, wRaquete, hRaquete);
}
function movimentaMinhaRaquete(){
if(keyIsDown(UP_ARROW)){ // Se pressionado setinha para baixo então vá para baixo
yRaquete -= 10;
}
if(keyIsDown(DOWN_ARROW)){ // Se pressionado setinha para cima então vá para cima
yRaquete += 10;
}
}
function movimentaRaqueteOponente(){
velocidadeYOponente = yBolinha - yRaqueteOponente - wRaquete / 20 - 30
yRaqueteOponente += velocidadeYOponente; // Movimenta a raquete para tentar acompanhar a bolinha
}
function incluiPlacar(){
fill(255); // Cor branca do placa
text(meusPontos, 278, 26); // Meu placar exbido na tela
text(pontosDoOponente, 321, 26); // Placar do oponente exibido na tela
}
function marcaPonto(){
if (xBolinha > 590){
meusPontos += 1; // Soma um ponto para mim
}
if (xBolinha < 10){
pontosDoOponente += 1; // Soma um ponto para o adversário
}
}