2
respostas

Jogo não marca ponto

Criei o comando para marcar pontos e ao tocar a bolinha não esta marcando ponto.

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

2 respostas

Olá Marcelo,

Pelo código que você postou, parece que a condição para marcar pontos está correta. No entanto, pode ser que o problema esteja em outro lugar do seu código. Verifique se a função "marcaPonto()" está sendo chamada no momento correto, ou se há algum outro erro que esteja impedindo a marcação de pontos.

Uma sugestão é utilizar o console do navegador para verificar se os valores das variáveis estão sendo atualizados corretamente. Dessa forma, você pode identificar qual é o problema e corrigi-lo.

Outro ponto importante de atenção são os números! Visto que na lógica aplicada aqui nesse jogo, o ponto é somente contabilizado se o programa identificar que a "bolinha" passou do local definido por você no código. Ou seja, se você colocar para que a bolinha volte antes de ela ultrapassar o número que o programa entende que é para marcar ponto, isso não vai funcionar.

Em outras palavras:

  • Se você colocou que a "bolinha" deve ter sua direção mudada quando passar pelo ponto 590 e 0 e colocar o ponto para ser validado somente quando ela passar (no caso tiver em uma posição maior ou menor que os limites) dos limites definidos, o ponto não será validade, pois ela nem irá ir até o local que deve e já irá retornar de onde veio, por conta da configuração feita.
  • De forma prática:
    • if(xBolinha > 590) ou seja, se a bolinha estiver em uma posição do eixo X que seja maior do que 590, { meusPontos += 1; } então adicione 1 aos meus pontos toda que isso ocorrer;
    • E também temos if (xBolinha < 10) se a bolinha estiver em uma posição do eixo X que seja menor do que 0, { pontosDoOponente += 1; } então adicione 1 ao ponto do oponente toda vez que isso ocorrer;
  • O que eu quero dizer é que se você tiver uma verificação que diga em forma de código algo assim: "se a bolinha estiver em uma posição do eixo X que seja maior ou igual à 589, e outra que diga: se o valor da bolinha estiver em uma posição do eixo X que seja menor ou igual à 1, e uma condicional dizendo: então multiplique a direção em -1"
  • Algo assim:
if(xBolinha >= 589 || xBolinha <= 1) {
    xBoliha = xBolinha * -1;
}
  • Se você tiver algo assim, ou parecido com isso, você precisa mudar os valores, pois a bolinha irá mudar de direção sempre antes de chegar no local da verificação.
  • E mesmo que os valores das condicionais sejam os próprios 590 e o 0, a verificação não será validada, pois ele entenderá que o X da bolinha será no máximo igual os limites e não vai passar disso, e conforme a verificação que você fez, o ponto só é valido se o X da bolinha for maior que o 590 e o 0, então preste atenção nisso também.

Em suma, era isso, mas se você puder colocar mais detalhes ou compartilhar o link do projeto para que eu possa lhe ajudar melhor na próxima.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor marque ele como solução! ✓.

Renan, bom dia! Obrigado pela ajuda amigo, porem ainda continua com erro, achei uma outra solução no forum e copiei o código, mas sinceramente gostaria que funcionasse da forma como estou aprendendo no curso.

Segue abaixo o link do projeto.

https://editor.p5js.org/teraoka.marcelo/sketches/pRIfwPogt