2
respostas

[Dúvida] PONTOS CONTABILIZADOS QUANDO TOCA NA RAQUETE

Independente se a bolinha colide com a borda ou com a raquete o pongcontabiliza pontos para mim e também para o oponente.

Já inclusive alterei a questão do marcaponto para marcar somente quando xBolinha + raio > width

Mas ele continua contabilizando pontos independente se bate na raquete ou na borda.

// Variáveis da Bolinha let xBolinha = 300; let yBolinha = 200; let diametro = 30; let raio = diametro / 2;

// Velocidade da Bolinha let velocidadeXBolinha = 5; let velocidadeYBolinha = 5;

// Variáveis da Raquete let xRaquete = 4 let yRaquete = 150 let raqueteComprimento = 10 let raqueteAltura = 90 let raqueteContorno = 30

// Variáveis do Oponente let xRaqueteOponente = 585 let yRaqueteOponente = 150 let velocidadeYOponente;

let colidiu = false;

//placar do jogo let meusPontos = 0; let pontosDoOponente = 0;

//sons do jogo let raquetada; let ponto; let trilha;

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(); movimentarBolinha(); verificaColisaoBorda(); mostraRaquete(xRaquete, yRaquete); movimentarRaquete(); //verificaColisaoRaquete(); mostraRaquete(xRaqueteOponente, yRaqueteOponente); verificaColisaoRaquete(xRaquete, yRaquete); //movimentaRaqueteOponente(); movimentaRaqueteMultiplayer(); verificaColisaoRaquete(xRaqueteOponente, yRaqueteOponente); incluiPlacar(); marcaPonto();

}

function mostrarBolinha() { circle(xBolinha, yBolinha, diametro) }

function movimentarBolinha() { 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, raqueteContorno) }

function movimentarRaquete(){ 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; raquetada.play(); } }

function verificaColisaoRaquete(x,y){ velocidadeXBolinha *= -1; colidiu = collideRectCircle(x,y,raqueteComprimento,raqueteAltura,xBolinha,yBolinha,raio); if (colidiu) { raquetada.play(); } }

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

function movimentaRaqueteMultiplayer(){ if (keyIsDown(87)){ yRaqueteOponente -= 10; }

if (keyIsDown(83)){ yRaqueteOponente += 10; }}

function incluiPlacar(){ stroke(255); textAlign(CENTER); textSize(26); fill(color (0,0,128)); rect(230,10,40, 30, 10); fill(255); text(meusPontos,250 ,35); fill (color(0,0,128)); rect(300, 10, 40, 30, 10); fill(255); text(pontosDoOponente,320,35); }

function marcaPonto(){ if (xBolinha + raio > width){ meusPontos += 1; ponto.play(); } if (xBolinha - raio < 0){ pontosDoOponente += 1; ponto.play(); } }

2 respostas

oi bruno, coloca o link do projeto.

mas, se quiseres tentar:

xRaquete 5

yRaquete 585

bolinha 20

no momento do ponto:

xBolinha < 10 para o oponente. xBolinha 585 para vc.

Desculpe, eu acabei esquecendo.

https://editor.p5js.org/brbdemoraes/full/NAbVybs7v

Nessa solução que você passou, dependendo do pc em que for aberto aparentemente também não vai funcionar. Tentei alterar as variáveis que você falou e também não deu certo.