3
respostas

[Dúvida] O código colidiu esta errado, jogo Pong no p5 Js web, estou no aguardo.

Mudei algumas coisas nas funções mas continua não dando certo. Acrescentei variáveis dentro dos parênteses como fiz com o código da minha raquete.

Aqui está meu código:

//variáveis da bolinha let xBolinha = 300; let yBolinha = 200; let diametro = 22; let raio = diametro / 2 ;

//velocidade da bolinha let velocidadeXBolinha = 6; let velocidadeYBolinha = 6;

//variáveis da raquete let xRaquete = 5; let yRaquete = 150; let raqueteComprimento = 10; let raqueteAltura = 90;

//variáveis do oponente let xRaqueteOponente = 585; let yRaqueteOponente = 150; let velocidadeYOponente;

function setup() { createCanvas(600, 400); }

function draw() { background(0); mostraBolinha(); movimentaBolinha(); verificaColisaoBorda(); mostraRaquete(xRaquete, yRaquete); movimentaMinhaRaquete(); //verificaColisaoRaquete(); mostraRaquete(xRaqueteOponente, yRaqueteOponente); movimentaRaqueteOponente(); colisaoRaqueteOponenteBiblioteca(xRaquete,yRaquete); colisaoRaqueteOponenteBiblioteca(xRaqueteOponente, yRaqueteOponente);

}

function mostraBolinha(){ circle(xBolinha, yBolinha, diametro); }

function movimentaBolinha(){ xBolinha += velocidadeXBolinha; yBolinha += velocidadeYBolinha; }

function verificaColisaoBorda(){ if (xBolinha + raio> width || xBolinha - raio< 0){ velocidadeXBolinha *= -1; } if (yBolinha + raio> height || yBolinha - raio < 0){ velocidadeYBolinha *= -1; } }

function mostraRaquete(x,y){ rect(x, y, raqueteComprimento, raqueteAltura); }

function movimentaMinhaRaquete(){ if (keyIsDown(UP_ARROW)){ yRaquete -= 10; } if (keyIsDown(DOWN_ARROW)){ yRaquete += 10; } }

function verificaColisaoRaquete(){ if (xBolinha - raio < xRaquete + raqueteComprimento && yBolinha - raio < yRaquete + raqueteAltura && yBolinha + raio > yRaquete){ velocidadeXBolinha *= -1; } }

function colisaoRaqueteOponenteBiblioteca(x,y){ colidiu = collideRectCircle(x,y,raqueteComprimento,raqueteAltura,xBolinha,yBolinha,raio);

if (colidiu){ velocidadeXBolinha *= -1;

}

}

function movimentaRaqueteOponente(){ velocidadeYOponente = yBolinha - yRaqueteOponente - raqueteComprimento /2 - 30; yRaqueteOponente += velocidadeYOponente;

}

3 respostas

Boa tarde Joaquim,

O que especificamente não está dando certo? O código não roda? Está apresentando algum erro? Coloca o link para o seu código no p5.js que fica melhor para analisarmos.

Bom dia, é que diz que a referência da palavra "colidiu" esta errada por isso não funciona o jogo Pong no p5.js web.

Aaqui está o link do esboço salvo:

https://editor.p5js.org/BafinhoGamer/sketches/RBBffZCxK

Bom dia Joaquim,

o método collideRectCircle() precisa da biblioteca p5.collide2D.js, faltou você carregá-la. Você pode baixar o arquivo do link abaixo:

https://github.com/bmoren/p5.collide2D

Não esqueça de fazer o upload da biblioteca em seus arquivos do projeto e também de chamá-la no arquivo index.html da seguinte forma:

<script src="p5.collide2d.js"></script>

Para outras bibliotecas vc pode consultar a biblioteca do p5.js em:

https://p5js.org/libraries/