Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Meu oponente não erra, mesmo adicionando o código "chanceDeErrar"

//parametros da bolinha let xBolinha = 300; let yBolinha = 200; let diametro = 14; let velocidadexBolinha = 6; let velocidadeyBolinha = 6; let raio= diametro/2;

//parametros da raquete do jogador let xRaqueteJogador = 5; let yRaqueteJogador = 150; let larguraRaqueteJogador = 10; let comprimentoRaqueteJogador = 90;

//parametros da raquete do console let xRaqueteConsole = 585; let yRaqueteConsole = 150; let larguraRaqueteConsole = 10; let comprimentoRaqueteConsole = 90; let velocidadeRaquete; let chanceDeErrar = 0;

//parametros do placar let pontosJogador = 0; let pontosConsole = 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); bolinha(); movimentaBolinha(); colisaoBorda(); raqueteJogador(); movimentoRaqueteJogador(); colisaoRaqueteJogador(); raqueteConsole(); movimentoRaqueteConsole(); colisaoRaqueteConsole(); incluiPlacar(); pontosMarcados(); }

function bolinha(){ circle(xBolinha,yBolinha,diametro);

}

function movimentaBolinha(){ xBolinha += velocidadexBolinha; yBolinha += velocidadeyBolinha;

}

function colisaoBorda(){ if((xBolinha+raio)>width || (xBolinha-raio)<0){ velocidadexBolinha *= -1;

} if((yBolinha+raio)>height || (yBolinha-raio)<0){ velocidadeyBolinha *= -1;

}

}

function raqueteJogador(){ rect(xRaqueteJogador,yRaqueteJogador,larguraRaqueteJogador, comprimentoRaqueteJogador);

}

function movimentoRaqueteJogador(){ if (keyIsDown(UP_ARROW)){ yRaqueteJogador -= 10; }

if (keyIsDown(DOWN_ARROW)){ yRaqueteJogador += 10; }

}

function colisaoRaqueteJogador(){ if(xBolinha - raio < xRaqueteJogador + larguraRaqueteJogador && yBolinha + raio < yRaqueteJogador + comprimentoRaqueteJogador && yBolinha - raio > yRaqueteJogador) { velocidadexBolinha *= -1; raquetada.play(); }

}

function raqueteConsole(){ rect(xRaqueteConsole,yRaqueteConsole,larguraRaqueteConsole, comprimentoRaqueteConsole);

}

function movimentoRaqueteConsole(){ velocidadeRaquete = yBolinha - yRaqueteConsole - comprimentoRaqueteConsole / 2 - 30; yRaqueteConsole += velocidadeRaquete + chanceDeErrar; calculaChanceDeErrar();

} function calculaChanceDeErrar() { if (pontosConsole >= pontosJogador) { chanceDeErrar += 1 if (chanceDeErrar >= 39){ chanceDeErrar = 40 } } else { chanceDeErrar -= 1 if (chanceDeErrar <= 35){ chanceDeErrar = 35 } } } function colisaoRaqueteConsole(){ if(xBolinha + raio > xRaqueteConsole && yBolinha + raio < yRaqueteConsole + comprimentoRaqueteConsole && yBolinha - raio > yRaqueteConsole) { velocidadexBolinha *= -1; raquetada.play(); }

}

function incluiPlacar(){ textSize(14); fill(color(255,20,147)); rect(190,10,30,20); fill(255); text(pontosJogador, 200, 26); fill(color(255,20,147)); rect(390,10,30,20); fill(255); text(pontosConsole, 400, 26);

}

function pontosMarcados(){ if(xBolinha>593){ pontosJogador += 1; ponto.play();

} if(xBolinha<7){ pontosConsole += 1; ponto.play();

} }

1 resposta
solução!

Olá, Daniel! Tudo bem com você?

Em primeiro lugar gostaria de parabenizá-lo pela conclusão do curso e também pela customização no seu projeto, ficou muito bonito!!! Sobre a calculaChanceDeErrar(), podemos aumentar a sensibilidade de probabilidade da chance de errar alterando seu valor. Olha só no código como funciona o teste:

function calculaChanceDeErrar() { 
  if (pontosConsole >= pontosJogador) { 
    chanceDeErrar += 1 
    if (chanceDeErrar >= 39){ 
      chanceDeErrar = 80 //bem aqui eu alterei o valor para aumentar a probalidade de erro da raquete do oponente.
    } 
  } else { 
    chanceDeErrar -= 1 
    if (chanceDeErrar <= 35){ 
      chanceDeErrar = 35 
    } 
  } 
}

Você pode também encontar neste tópico uma solução que atribui aleatoriedade ao comportamento da raquete do oponente por meio da aplicação dos métodos Math.random() : Bolinha ou acerta ou erra - Aleatoriedade do oponente

Outro ponto bacana é utilizar o botão "inserir bloco de código" para deixar seu código indentado aqui no fórum. Basta você clicar em "inserir bloco de código" aqui na barra de ferramentas da caixa de resposta e colar seu código .

Um grande abraço, bons estudos e fico à disposição!