1
resposta

pontos pong no j5

quando a bolinha colide com a borda, nao marca ponto nem para mim e nem para o oponente. Os parâmetros estão iguais ao apresentado em aula. //variáveis da bolinha let xBolinha = 300; let yBolinha = 200; let diametro = 25; let raio = diametro / 2;

//velocidade da bolinha let velocidadeXBolinha = 6; let velocidadeYBolinha = 6; let raqueteComprimento = 10; let raqueteAltura = 90;

//variáveis da raquete let xRaquete = 5; let yRaquete = 150;

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

let colidiu = false;

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

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

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

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 verificaColisaoRaquete(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 }

function incluiPlacar(){ fill (255) text (meusPontos, 278, 26); text (pontosDoOponente, 321, 26); }

function marcaPonto () { if (xBolinha > 590){ meusPontos += 1; }

if (xBolinha < 10){ pontosDoOponente += 1; } }

1 resposta

Olá Daniele

O diâmetro da sua bolinha é 25 está diferente do sugerido no curso que é 15, se você mudar isso já vai funcionar.

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

No começo do seu código tem que estar assim.

Se você quiser mudar o tamanho da bolinha aumentando o diâmetro você também terá que mudar os parâmetros da função "marcaPonto" se quiser manter o diâmetro da bolinha em 25 coloque assim na função marcaPonto

function marcaPonto () { 
  if (xBolinha > 585){ 
    meusPontos += 1; }

if (xBolinha < 15){ 
  pontosDoOponente += 1; } }

Troque 590 por 585 e 10 por 15

Perceba que a função marca ponto depende do tamanho da bolinha que seria o diâmetro e o tamanho da tela é o createCanvas, então altere o diâmetro da bolinha ou esses parâmetros na função marcaPonto