5
respostas

Bolinha não encosta na minha raquete, e passa direto pela raquete do oponente,e o ponto marca sem parar.

// variaveis da bolinha let xBolinha = 300; let yBolinha = 200; let diametro = 22; let raio = diametro /2;

// variaveis da velocidade da bolinha let velocidadexBolinha = 6; let velocidadeyBolinha =6;

let colidiu = false; let meusPontos = 0; let pontosOponente = 0;

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

//variaveis da raquete1 let raqueteComprimento = 90; let raqueteLargura = 10; let yRaquete = 150; let xRaquete = 5;

// variaveis raquete 2 let raquete2Comprimento = 90; let raquete2Largura = 10; let yRaquete2 = 150; let xRaquete2 =585; let velocidadeYRaquete2;

function preload(){ trilha = loadSound("trilha.mp3"); ponto = loadSound("ponto.mp3"); raquetada = loadSound("raquetada.mp3"); }

function setup() { createCanvas(600, 400); trilha.play(); }

function draw() { background(0);

mostraBolinha(); movimentaBolinha(); verificaColisaoBorda(); mostraRaquete(xRaquete,yRaquete); mostraRaquete2(xRaquete2,yRaquete2); movimentaMinhaRaquete(); verificaColisaoRaquete(); verificaColisaoRaqueteBiblioteca(xRaquete,yRaquete); movimentaRaquete2();

verificaColisaoRaqueteBiblioteca(xRaquete2,yRaquete2); incluiPlacar(); marcaPonto(); };

// Draw a circle at location (30, 30) with a diameter of 20. function mostraBolinha(){ circle(xBolinha,yBolinha, diametro); } function movimentaBolinha(){ xBolinha += velocidadexBolinha; yBolinha += velocidadeyBolinha;

}

function verificaColisaoBorda(){ if (xBolinha > width || xBolinha<0){ velocidadexBolinha *= -1 } if (yBolinha> height || yBolinha < 0){ velocidadeyBolinha *= -1 }

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

function mostraRaquete2(x,y){ rect(x, y, raquete2Largura, raquete2Comprimento); }

function movimentaMinhaRaquete(){

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

function verificaColisaoRaquete(){ if (xBolinha - raio < xRaquete + raqueteComprimento && yBolinha - raio < yRaquete + raqueteLargura && yBolinha + raio > yRaquete){ velocidadexBolinha *= -1 raquetada.loop(); } }

function verificaColisaoRaqueteBiblioteca(x,y){ colidiu = collideRectCircle(x,y,raqueteComprimento,raqueteLargura,xBolinha,yBolinha,raio); if(colidiu){ velocidadexBolinha *=-1; raquetada.play(); } }

function movimentaRaquete2(){ velocidadeYRaquete2 = yBolinha - yRaquete2 - raqueteComprimento /2 - 30; yRaquete2 += velocidadeYRaquete2; } //placar do jogo

function incluiPlacar(){ stroke(255); textSize(16); textAlign(CENTER) fill(color(255,140,0)) rect(130,10,40,20) fill(255) text(meusPontos,150,26); fill(color(255,140,0)) rect(445,10,40,20) fill(255) text(pontosOponente,465,26); }

function marcaPonto(){ if(xBolinha < 590){ meusPontos += 1; ponto.play(); } if(xBolinha < 10){ pontosOponente += 1; ponto.play(); } }

5 respostas

Faz uma coisa, ao invés de colar o seu código assim aqui.

Compartilha o link para edição, assim conseguimos visualizar melhor.

Caso queira manter o código colado dessa forma. Mantenha apenas as funções de colisão que provavelmente é onde está o problema.

A biblioteca de colisão está adicionada ao seu projeto? A p5.collide2d.js .

// variaveis da bolinha let xBolinha = 300; let yBolinha = 200; let diametro = 22; let raio = diametro /2;

// variaveis da velocidade da bolinha let velocidadexBolinha = 6; let velocidadeyBolinha =6;

let colidiu = false; let meusPontos = 0; let pontosOponente = 0;

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

//variaveis da raquete1 let raqueteComprimento = 90; let raqueteLargura = 10; let yRaquete = 150; let xRaquete = 5;

// variaveis raquete 2 let raquete2Comprimento = 90; let raquete2Largura = 10; let yRaquete2 = 150; let xRaquete2 =585; let velocidadeYRaquete2;

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);

mostraBolinha(); movimentaBolinha(); verificaColisaoBorda(); mostraRaquete(xRaquete,yRaquete); mostraRaquete2(xRaquete2,yRaquete2); movimentaMinhaRaquete(); verificaColisaoRaquete(); verificaColisaoRaqueteBiblioteca(xRaquete,yRaquete); movimentaRaquete2(); verificaColisaoRaqueteBiblioteca(xRaquete2,yRaquete2); incluiPlacar(); marcaPonto(); };

// Draw a circle at location (30, 30) with a diameter of 20. function mostraBolinha(){ circle(xBolinha,yBolinha, diametro); } function movimentaBolinha(){ xBolinha += velocidadexBolinha; yBolinha += velocidadeyBolinha;

}

function verificaColisaoBorda(){ if (xBolinha > width || xBolinha<0){ velocidadexBolinha *= -1 } if (yBolinha> height || yBolinha < 0){ velocidadeyBolinha *= -1 }

}

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

function mostraRaquete2(x,y){ rect(x, y, raquete2Largura, raquete2Comprimento); }

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

function verificaColisaoRaquete(){ if (xBolinha - raio < xRaquete + raqueteComprimento && yBolinha - raio < yRaquete + raqueteLargura && yBolinha + raio > yRaquete){ velocidadexBolinha *= -1 raquetada.loop(); } }

function verificaColisaoRaqueteBiblioteca(x,y){ colidiu = collideRectCircle(x,y,raqueteComprimento,raqueteLargura,xBolinha,yBolinha,raio); if(colidiu){ velocidadexBolinha *=-1; raquetada.play(); } }

function movimentaRaquete2(){ velocidadeYRaquete2 = yBolinha - yRaquete2 - raqueteComprimento /2 - 30; yRaquete2 += velocidadeYRaquete2; } //placar do jogo

function incluiPlacar(){ stroke(255); textSize(16); textAlign(CENTER) fill(color(255,140,0)) rect(130,10,40,20) fill(255) text(meusPontos,150,26); fill(color(255,140,0)) rect(445,10,40,20) fill(255) text(pontosOponente,465,26); }

function marcaPonto(){ if(xBolinha < 590){ meusPontos += 1; ponto.play(); } if(xBolinha < 10){ pontosOponente += 1; ponto.play(); } }

// variaveis da bolinha let xBolinha = 300; let yBolinha = 200; let diametro = 22; let raio = diametro /2;

// variaveis da velocidade da bolinha let velocidadexBolinha = 6; let velocidadeyBolinha =6;

let colidiu = false; let meusPontos = 0; let pontosOponente = 0;

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

//variaveis da raquete1 let raqueteComprimento = 90; let raqueteLargura = 10; let yRaquete = 150; let xRaquete = 5;

// variaveis raquete 2 let raquete2Comprimento = 90; let raquete2Largura = 10; let yRaquete2 = 150; let xRaquete2 =585; let velocidadeYRaquete2;

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);

mostraBolinha(); movimentaBolinha(); verificaColisaoBorda(); mostraRaquete(xRaquete,yRaquete); mostraRaquete2(xRaquete2,yRaquete2); movimentaMinhaRaquete(); verificaColisaoRaquete(); verificaColisaoRaqueteBiblioteca(xRaquete,yRaquete); movimentaRaquete2(); verificaColisaoRaqueteBiblioteca(xRaquete2,yRaquete2); incluiPlacar(); marcaPonto(); };

// Draw a circle at location (30, 30) with a diameter of 20. function mostraBolinha(){ circle(xBolinha,yBolinha, diametro); } function movimentaBolinha(){ xBolinha += velocidadexBolinha; yBolinha += velocidadeyBolinha;

}

function verificaColisaoBorda(){ if (xBolinha > width || xBolinha<0){ velocidadexBolinha *= -1 } if (yBolinha> height || yBolinha < 0){ velocidadeyBolinha *= -1 }

}

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

function mostraRaquete2(x,y){ rect(x, y, raquete2Largura, raquete2Comprimento); }

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

function verificaColisaoRaquete(){ if (xBolinha - raio < xRaquete + raqueteComprimento && yBolinha - raio < yRaquete + raqueteLargura && yBolinha + raio > yRaquete){ velocidadexBolinha *= -1 raquetada.loop(); } }

function verificaColisaoRaqueteBiblioteca(x,y){ colidiu = collideRectCircle(x,y,raqueteComprimento,raqueteLargura,xBolinha,yBolinha,raio); if(colidiu){ velocidadexBolinha *=-1; raquetada.play(); } }

function movimentaRaquete2(){ velocidadeYRaquete2 = yBolinha - yRaquete2 - raqueteComprimento /2 - 30; yRaquete2 += velocidadeYRaquete2; } //placar do jogo

function incluiPlacar(){ stroke(255); textSize(16); textAlign(CENTER) fill(color(255,140,0)) rect(130,10,40,20) fill(255) text(meusPontos,150,26); fill(color(255,140,0)) rect(445,10,40,20) fill(255) text(pontosOponente,465,26); }

function marcaPonto(){ if(xBolinha < 590){ meusPontos += 1; ponto.play(); } if(xBolinha < 10){ pontosOponente += 1; ponto.play(); } }

// variaveis da bolinha 
let xBolinha = 300; 
let yBolinha = 200; 
let diametro = 22; 
let raio = diametro /2;

// variaveis da velocidade da bolinha 
let velocidadexBolinha = 6; 
let velocidadeyBolinha =6;

let colidiu = false; 
let meusPontos = 0; 
let pontosOponente = 0;

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

//variaveis da raquete1
let raqueteComprimento = 90; 
let raqueteLargura = 10; 
let yRaquete = 150; 
let xRaquete = 5;

// variaveis raquete 2 
let raquete2Comprimento = 90; 
let raquete2Largura = 10; 
let yRaquete2 = 150;
let xRaquete2 =585; 
let velocidadeYRaquete2;

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);

  mostraBolinha(); 
  movimentaBolinha();
  verificaColisaoBorda();
  mostraRaquete(xRaquete,yRaquete);            mostraRaquete2(xRaquete2,yRaquete2);
  movimentaMinhaRaquete();
  verificaColisaoRaquete();  verificaColisaoRaqueteBiblioteca(xRaquete,yRaquete);  movimentaRaquete2();
verificaColisaoRaqueteBiblioteca(xRaquete2,yRaquete2); incluiPlacar();
  marcaPonto(); };

// Draw a circle at location (30, 30) with a diameter of 20. 
function mostraBolinha(){
  circle(xBolinha,yBolinha, diametro); 
} 
function movimentaBolinha(){ 
  xBolinha += velocidadexBolinha; 
  yBolinha += velocidadeyBolinha;

}

function verificaColisaoBorda(){ 
if (xBolinha > width || xBolinha<0){
  velocidadexBolinha *= -1 } 
  if (yBolinha> height || yBolinha < 0){
    velocidadeyBolinha *= -1 
  }

} 

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

function mostraRaquete2(x,y){ 
  rect(x, y, raquete2Largura, raquete2Comprimento);
}

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

function verificaColisaoRaquete(){ 
  if (xBolinha - raio < xRaquete + raqueteComprimento 
      && yBolinha - raio < yRaquete + raqueteLargura 
      && yBolinha + raio > yRaquete){
    velocidadexBolinha *= -1 
    raquetada.loop(); 
  }
}

function verificaColisaoRaqueteBiblioteca(x,y){
  colidiu = collideRectCircle(x,y,raqueteComprimento,raqueteLargura,xBolinha,yBolinha,raio);
  if(colidiu){
    velocidadexBolinha *=-1;
    raquetada.play(); 
  } 
}

function movimentaRaquete2(){ 
  velocidadeYRaquete2 = yBolinha - yRaquete2 - raqueteComprimento /2 - 30; yRaquete2 += velocidadeYRaquete2; 
} 
//placar do jogo

function incluiPlacar(){
  stroke(255); 
  textSize(16); 
  textAlign(CENTER) 
  fill(color(255,140,0))
  rect(130,10,40,20) 
  fill(255) 
  text(meusPontos,150,26);
  fill(color(255,140,0)) 
  rect(445,10,40,20) 
  fill(255) 
  text(pontosOponente,465,26); }

function marcaPonto(){
  if(xBolinha < 590){
    meusPontos += 1;
    ponto.play();
  } 
  if(xBolinha < 10){
    pontosOponente += 1; 
    ponto.play();
  } 
}