1
resposta

[Bug] O "w" e o "s" está na mesma raquete

olá! A raquete do oponente não está movimentando, a tecla "w" e "s",está funcionando na minha raquete! Alguém poderia ver pra mim? https://editor.p5js.org/Ayeesk/sketches/_1nL8ZEh_

1 resposta

Oiii, tudo bem contigo?

Parece que você está enfrentando alguns problemas no seu jogo de Pong em p5.js. Vou tentar ajudar com as questões que você mencionou.

  • Problema 1: A bolinha fica pulando no eixo y Esse problema ocorre porque você está multiplicando a velocidade da bolinha por -1 sempre que ocorre uma colisão com a raquete. No entanto, você precisa verificar se a colisão ocorre na parte superior ou inferior da raquete antes de inverter a velocidade no eixo y. Vamos corrigir isso.

No trecho de código da função verificaColisaoRaquete, substitua o seguinte trecho:

if (colidiu) {
  velocidadeXBolinha *= -1;
}

por:

if (colidiu) {
  let pontoColisao = yBolinha - (y + raqueteAltura / 2);
  velocidadeXBolinha *= -1;
  velocidadeYBolinha = pontoColisao * 0.2; // Ajuste o valor 0.2 para alterar a intensidade do efeito de rebote
  raquetada.play(); // Adicione esse som quando ocorrer uma colisão com a raquete
}

Esse código verifica a posição vertical do ponto de colisão em relação ao centro da raquete e ajusta a velocidade no eixo y de acordo. Também adiciona um som de colisão com a raquete usando o arquivo de áudio "raquetada.mp3".

  • Problema 2: As teclas "w" e "s" não estão funcionando Esse problema ocorre porque você está verificando as teclas UP_ARROW e DOWN_ARROW para movimentar a raquete, mas está usando as teclas "w" e "s" no lugar delas. Vamos corrigir isso também.

No trecho de código da função movimentaMinhaRaquete, substitua o seguinte trecho:

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

if (keyIsDown(DOWN_ARROW)) 
  yRaquete += 10;

por:

function movimentaMinhaRaquete() {
  if (keyIsDown(UP_ARROW) || keyIsDown(87)) { // UP_ARROW ou tecla "w"
    yRaquete -= 10;
  }

  if (keyIsDown(DOWN_ARROW) || keyIsDown(83)) { // DOWN_ARROW ou tecla "s"
    yRaquete += 10;
  }
}

Agora, você poderá usar as teclas "w" e "s" para movimentar a sua raquete.

Espero que essas correções ajudem a resolver os problemas que você estava enfrentando no seu jogo de Pong. Se você tiver mais alguma dúvida, fique à vontade para perguntar!

Se você tiver mais dúvidas ou encontrar outros problemas, não hesite em perguntar. Boa sorte com a implementação do seu jogo Pong!

Em suma seria isso, caso precise eu estarei aqui!

Abraços.