function setup() {
createCanvas(600, 400);
}
function draw() {
background(0);
mostrabolinha();
movimentabolinha();
verificacolisaoborda();
criarraquete();
moverraquete();
//colisaoraquete();
colisaobiblioteca();
criarraqueted();
movimetaraqueted();
limiteBordaSuperior();
limitebordainferior();
}
//Criando variáveis para assumir a posição do círculo
let xBolinha = 100;
let yBolinha = 200;
let dBolinha = 15;
//Fazendo com que a bolinha não considere o valor x como o centro do raio.Raio = diamentro/2
let raio = dBolinha / 2;
//Criando a variável para assumir a velocidade da bolinha
let velocidadexBolinha = 6;
let velocidadeyBolinha = 6;
//Criando a função para mostrar a bolinha
function mostrabolinha (){
circle(xBolinha, yBolinha, dBolinha);
}
//Criando a função para movimentar a bolinha
function movimentabolinha(){
xBolinha += velocidadexBolinha;
yBolinha += velocidadeyBolinha;
}
//Criando a função para verificar quando a bolinha toca a borda
function verificacolisaoborda() {
//Verificar se a bolinha toca a borda
if(xBolinha + raio > width || xBolinha - raio < 0) {
velocidadexBolinha *= -1;
}
if(yBolinha + raio > height || yBolinha - raio < 0 ){
velocidadeyBolinha *= -1;
}
}
//Criando a variável para assumir a posição da raquete esquerda
let xraquete = 2;
let yraquete = 150;
let comprimraquete = 10;
let alturaraquete = 90;
//Criando a função para criar a raquete da esquerda
function criarraquete () {
rect(xraquete, yraquete, comprimraquete, alturaraquete);
}
//Criando a função para mover a raquete da esquerda
function moverraquete() {
if (keyIsDown(UP_ARROW)) {
if (limiteBordaSuperior()) {
yraquete -= 10;
}
}
if (keyIsDown(DOWN_ARROW)) {
if(limitebordainferior()) {
yraquete += 10;
}
}
}
//Criando as funções Limites --> Ao pesquisar como limitar as bordas, encontrei a orintação com CARLOS VINICIOS DE SOUZA BARROS
function limiteBordaSuperior(){
return yraquete > 0
}
function limitebordainferior (){
return yraquete + alturaraquete < 400;
}
//Criando a variável para assumir a posição da raquete direita
let xraqueted = 588;
let yraqueted = 150;
let comprimraqueted = 10;
let alturaraqueted = 90;
//Criando a variavel para assumir a velocidade da raquete da direita
let velocidadexraqueted = 7;
//Criando função para criar a raquete da direita
function criarraqueted () {
rect(xraqueted, yraqueted, comprimraquete, alturaraquete);
}
//Criando a função para movimentar a raquete da direita
function movimetaraqueted(){
yraqueted +=velocidadeyBolinha;
}
//Função criada para verificar a colisão da bolinha da raquete.
//Comentada por ser substituída pela função da biblioteca p5.collide2d.js
//function colisaoraquete () {
// if (xBolinha - raio < xraquete + comprimraquete && yBolinha - raio //< yraquete + alturaraquete && yBolinha + raio > yraquete) {
// velocidadeyBolinha *= -1;
// }
//}
//Criando a variável colisao e atribuindo o valor inicial como falso
let colisao = false;
let colisaod = false;
//função herdada da biblioteca p5.collide2d.js
function colisaobiblioteca() {
colisao = collideRectCircle(xraquete, yraquete, comprimraquete, alturaraquete, xBolinha, yBolinha, raio);
if(colisao) {
velocidadeyBolinha *= -1;
}
colisaod = collideRectCircle(xraqueted, yraqueted, comprimraqueted, alturaraqueted, xBolinha, yBolinha, raio);
if(colisaod) {
velocidadeyBolinha *= -1;
}
}