Fala pessoal! Blz?
Fiz meu jogo Pong no p5 com detalhes diferentes do que foram ensinados no curso. Eu acabei criando esse código porque, do jeito que eu estava codando, estava dando alguns bugs, então, achei algumas soluções e deram certo.
Confere aí e deixe seu comentário.
Vlw
// variáveis da bolinha
let xBolinha = 200;
let yBolinha = 200;
let dBolinha = 20;
// velocidade da Bolinha
let veloX = 4;
let veloY = 4;
let cRaquete = 5;
let aRaquete = 80;
// variáveis da raquete
let xRaquete = 5;
let yRaquete = 150;
// variaveis do oponente
let xRaqueteOponente = 585
let yRaqueteOponente = 150
let veloyOponente;
// variável biblioteca colisao
let colidiu = false;
// placar do jogo
let meusPontos = 0;
let pontosOponente = 0;
// tamanho da tela
function setup() {
createCanvas(600, 400);
}
// cor da tela
function draw() {
background(0);
// chamando funções
mostraBolinha();
movBolinha();
colisaoBolinha();
mostraRaquete(xRaquete, yRaquete);
verificaColisaoBorda();
verificaColisaoRaquete(xRaquete, yRaquete);
mostraRaqueteOponente(xRaqueteOponente, yRaqueteOponente);
movMinhaRaquete();
movRaqueteOponente();
verificaColisaoRaquete(xRaqueteOponente, yRaqueteOponente);
incluiPlacar();
marcaPonto();
bolinhaNaoFicaPresa();
}
// função que cria a bolinha
function mostraBolinha() {
circle(xBolinha, yBolinha, dBolinha);
}
// função que movimenta a bolinha
function movBolinha() {
xBolinha += veloX;
yBolinha += veloY;
}
function colisaoBolinha(){
if(xBolinha > width || xBolinha < 0){
// se bolinha maior que a borda OU menor zero
veloX *= - 1;
}
if(yBolinha > height || yBolinha < 0){
veloY *= - 1
}
}
function mostraRaquete(x,y) {
rect(x, y, cRaquete, aRaquete);
}
function mostraRaqueteOponente() {
rect(xRaqueteOponente, yRaqueteOponente, cRaquete, aRaquete);
}
function movRaqueteOponente() {
if (keyIsDown(UP_ARROW)) {
yRaqueteOponente -= 10;
}
if (keyIsDown(DOWN_ARROW)) {
yRaqueteOponente += 10;
}
}
function movMinhaRaquete(){
if (keyIsDown(87)) {
yRaquete -= 10;
}
if (keyIsDown(83)) {
yRaquete += 10;
}
}
function verificaColisaoBorda(){
if (xBolinha - dBolinha < xRaquete + cRaquete &&
yBolinha - dBolinha < yRaquete + aRaquete &&
yBolinha + dBolinha > yRaquete
) {
veloX *= -1;
}
}
function verificaColisaoRaquete(x,y) {
colidiu = collideRectCircle(x, y, cRaquete, aRaquete, xBolinha, yBolinha, dBolinha);
if (colidiu) {
veloX *= -1;
}
}
function incluiPlacar(){
stroke(255);
textAlign(CENTER);
textSize(20);
fill(color(255, 140,0));
rect(150,10, 40, 20);
fill(255);
text(meusPontos, 170, 26);
fill(color(255, 140,0));
rect(450,10, 40, 20);
fill(255);
text(pontosOponente, 470, 26);
}
function marcaPonto(){
if(xBolinha > 600){
meusPontos += 1 ;
}
if(xBolinha < 0){
pontosOponente += 1;
}
}
function bolinhaNaoFicaPresa(){
if (xBolinha / 4 < 0){
xBolinha = 20
}
}