Olá, Dúlio, tudo bem?
Desculpe pela demora em obter um retorno.
Nessa situação onde o oponente nunca erra, podemos criar uma função que calcule a chance de errar e chamá-la dentro da função responsável pelo movimento movimentaRaqueteOponente
. Para isso criaremos uma variável let chanceDeErrar = 0
; essa variável será atribuída ao YRaqueteOponente
.
O código fica assim:
let chanceDeErrar = 0;
function movimentaRaqueteOpo (){
velocidadeYOpo = yBolinha - yRaqueteOpo - raqueteComp/2 - 75;
yRaqueteOpo += velocidadeYOpo;
yRaqueteOpo = constrain(yRaqueteOpo, 5, 325);
calculaChanceDeErrar()
}
A função calculaChanceDeErrar
ela verifica se os pontos do oponente são iguais ou maiores que meus pontos.
function calculaChanceDeErrar() {
if (pontosDoOponente >= meusPontos) {
chanceDeErrar += 1
if (chanceDeErrar >= 39){
chanceDeErrar = 40
}
} else {
chanceDeErrar -= 1
if (chanceDeErrar <= 35){
chanceDeErrar = 35
}
}
}
No entanto, faço uma ressalva que caso tenha utilizado tamanhos diferentes para as variáveis da raquete e da bolinha, é possível ser necessário fazer alteração no valor da variável chance de errar, após o if
, por exemplo, aumentar de 39 para 80, será necessário fazer alguns testes para identificar a qual valor se adequa ao seu código.
Essa é uma das possibilidades, abaixo deixo outras possíveis sugestões de melhorias de código:
Caso o problema persista, você pode ainda compartilhar o link do seu projeto, assim, posso te ajudar mais assertivamente.
Espero ter ajudado.
Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!