6
respostas

Oponente não marca ponto no Pong criado no P5.JS

Pessoal, então, fui criando o código junto com o instrutor.

Entretanto, apenas o meu placar é atualizado, o do oponente permanece sempre em 0.

Poderiam me ajudar, por gentileza? :)

Aparentemente está tudo certo, no código abaixo:

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

function verificaColisaoRaquete(x, y) {
  colidiu = collideRectCircle(x, y, raqueteComprimento, raqueteAltura, xBolinha, yBolinha, raio);
  if(colidiu){
    velocidadeXBolinha *= -1;
  }
}

function movimentaRaqueteOponente() {

  velocidadeYOponente = yBolinha - yRaqueteOponente - raqueteComprimento / 2 - 20;
  yRaqueteOponente += velocidadeYOponente

}

function incluiPlacar() {
  fill(255)
  text(meusPontos, 278, 26); 
  text(pontosDoOponente, 321, 26);
}

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

Grato desde já pela ajuda.

6 respostas

Quem sabe tenta aumentar o valor de x na função de marcar pontos. Por exemplo:

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

Pode ser que dê! Só uma ideia :)

Oi Mateus,

Obrigado. :)

Mas continua na mesma. Acho que deve ser algum tipo de bug, sei lá. :(

Agora, o seguinte trecho está fazendo minha bolinha se movimentar só no centro, e no eixo y, apenas:

function verificaColisaoRaqueteOponente() {
  if(xBolinha - raio < xRaqueteOponente + raqueteOponenteComprimento && yBolinha - raio < yRaqueteOponente + raqueteOponenteAltura && yBolinha + raio > yRaqueteOponente) {
    velocidadeXBolinha *= -1;
  }
}

Alguém teria alguma ideia, por favor? :)

Pessoal, consegui resolver, mas da forma mais estranha possível.

Simplesmente copiei o trecho do código do professor, ref. a movimentação e também à colisão da raquete do oponente, para o meu código, e funcionou.

Mas acontece que ambos os códigos faziam a mesma coisa. Comparei um com o outro, e não vi diferença alguma.

Não entendi isso...rs E parece que o P5 é meio "bugado", sei lá.

Tipo, agora compartilho um link do projeto funcionando, e aparece a raquete do oponente parada, sem se movimentar no eixo Y. Isso enquanto no editor, ela funciona, se movimenta perfeitamente. Abaixo vocês podem conferir o projeto, com a raquete oponente fixa, infelizmente, enquanto funciona perfeitamente dentro do editor:

https://editor.p5js.org/marcos.zy/present/QTxarZ8v3

Estranho isso, não?

marcos, aqui tá funcionando direitinho quando acesso seu código pelo link :D também estou com um problema parecido, estou usando a fórmula de movimento da raquete do oponente que o prof usou, mas meu oponente não erra uma!! talvez seja porque usamos valores diferentes de tamanho da raquete (?) não sei, ele fez uma fórmula toda elaborada que não entendi bulhufas lá pra mover a raquete e alterar o y do oponente em relação a bolinha que achei que funcionaria para qualquer valor de tamanho da raquete. estou aguardando resposta sobre isso ainda :) está legal seu jogo! parabéns

Opa, valeu Caique! :)

Putz, está com o mesmo problema aí? Do oponente não errar uma? rsrs

Não entendi isso, acontece comigo também, agora. Gostaria que algum instrutor nos ajudasse aqui. :D