2
respostas

Basicamente o jogo está correto, porém, a raquete do adversário sempre segue a bolinha. Como faço para configurar a velocidade da Raquete do Oponente? (Irei destacar a função específica a dúvida no final do código).

//variáveis da bolinha let xBolinha = 300; let yBolinha = 200; let diametro = 20; let raio = diametro / 2;

//velocidade da bolinha let velocidadeXBolinha = 6; let velocidadeYBolinha = 6;

//variáveis da raquete let xRaquete = 5; let yRaquete = 150; let comprimentoRaquete = 10; let alturaRaquete = 90;

//movimento da raquete let movimentoYRaquete = 3; let movimentoXRaquete = 3;

//variáveis do oponente let xRaqueteOponente = 584; let yRaqueteOponente = 150; let velocidadeYOponente;

//placar do jogo let meusPontos = 0; let pontosOponente = 0;

let colisaoRaquete = false;

function setup() { createCanvas(600, 400); }

function draw() { background(0); mostrarBolinha(); movimentarBolinha(); verificarColisaoBorda(); mostrarRaquete(xRaquete, yRaquete); mostrarRaquete(xRaqueteOponente, yRaqueteOponente); movimentarRaquete(); verificarColisaoRaquete(xRaquete, yRaquete); verificarColisaoRaquete(xRaqueteOponente, yRaqueteOponente); movimentarRaqueteOponente(); incluiPlacar(); pontoMarcado();

//criando a bolinha function mostrarBolinha(){ circle(xBolinha, yBolinha, diametro); }

//definindo movimentação da bolinha function movimentarBolinha(){ xBolinha += velocidadeXBolinha; yBolinha += velocidadeYBolinha; }

//verificar se houve colisão com as bordas e retornar um resultado function verificarColisaoBorda(){

if(xBolinha + raio > width || xBolinha - raio < 0) { velocidadeXBolinha *= -1; }

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

function mostrarRaquete(x, y){ rect(x, y, comprimentoRaquete, alturaRaquete); }

function movimentarRaquete(){ if(keyIsDown(UP_ARROW)){ yRaquete -= 10; } if (keyIsDown(DOWN_ARROW)){ yRaquete += 10; } } function movimentarRaqueteOponente(){ velocidadeYOponente = yBolinha - yRaqueteOponente - comprimentoRaquete / 2 - 30; yRaqueteOponente += velocidadeYOponente; }

function verificarColisaoRaquete(x, y){ colisaoRaquete = collideRectCircle(x, y, comprimentoRaquete, alturaRaquete, xBolinha, yBolinha, raio); if (colisaoRaquete){ velocidadeXBolinha *= -1; } }

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

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

//MOVIMENTAÇÃO DA RAQUETE DO OPONENTE

function movimentarRaqueteOponente(){ velocidadeYOponente = yBolinha - yRaqueteOponente - comprimentoRaquete / 2 - 30; yRaqueteOponente += velocidadeYOponente; }

2 respostas

Também estou procurando uma resposta para essa situação.

Oi tudo bem?

Para conseguir isso tem que humanizar a IA. Porque do jeito que ela está seu nível de dificuldade é Very Hard. Você pode usando um random para criar diversas situações de erro, inverter temporiariamente a raquete, paralisar a raquete temporariamente, etc.

Espero ter ajudado!!!