Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] qnd dou play, a raquete do oponente some!

Dps que eu botei a função de movimentar a raquete do oponente e dava play , ela sumia.

function movimentaRaqueteOponente() {
    velocidadeYOponente = yBolinha - yRaqueteOponente - raqueteComprimento / 2 - 30;
    yRaqueteOponente += velocidadeYOponente
}

segue a linha do codigo todo:

//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 RaqueteComprimento = 10;
let RaqueteAltura = 90;

//variáveis do oponente
let xRaqueteOponente = 585;
let yRaqueteOponente = 150;
let VelocidadeYOponente;

//

let Colidiu = false;


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

function draw() {
  background(0);
  
  MostraBolinha();
  MovimentaBolinha();
  VerificasãoColisãoBorda();
  MostraRaquete(xRaquete ,yRaquete);
  MovimentaMinhaRaquete();
  //VerificaColisãoRaquete();
  ColisãoMinhaRaqueteBlibioteca();
  MostraRaquete(xRaqueteOponente, yRaqueteOponente);
  MovimentaRaqueteOponente();
  
  }
  
  function MostraBolinha(){
  circle(xBolinha, yBolinha ,diametro);
  
}
  
  function MovimentaBolinha(){
  //xBolinha += VelocidadeXBolinha;
  yBolinha += VelocidadeYBolinha;
    
  }
  
  function  VerificasãoColisãoBorda(){
    if (xBolinha + raio > width ||
      xBolinha - raio < 0 ){
    
    VelocidadeXBolinha *= -1;
  }
  if (yBolinha + raio > height ||
     yBolinha - raio < 0 ){
    
    VelocidadeYBolinha *= -1
  }
    
}

  function MostraRaquete(x,y){
  
  rect(x, y, RaqueteComprimento, RaqueteAltura    )
}

  function MovimentaMinhaRaquete() {
    if (keyIsDown(UP_ARROW)) {
        yRaquete -= 10;
    }
    if (keyIsDown(DOWN_ARROW)) {
        yRaquete += 10;
    }
}
  

  function VerificaColisãoRaquete(){
    if (xBolinha - raio < xRaquete + RaqueteComprimento 
       && yBolinha - raio <  yRaquete + RaqueteAltura &&
       yBolinha + raio > yRaquete ){
      VelocidadeXBolinha *= -1;
    }
    
  }




  function ColisãoMinhaRaqueteBlibioteca(){
   Colidiu = 
  collideRectCircle(xRaquete, yRaquete, RaqueteComprimento, RaqueteAltura, xBolinha, yBolinha, raio);
  if (Colidiu){
   VelocidadeXBolinha *= -1; 
    
  }
    
}

  function MovimentaRaqueteOponente(){
    VelocidadeYOponenente = yBolinha - yRaqueteOponente - 
      RaqueteComprimento / 2 - 30;
   yRaqueteOponente += VelocidadeYOponente 
    
}
2 respostas
solução!

Olá, Guilherme! Como vai?

Analisando o código fornecido, percebi que o problema está na função movimentaRaqueteOponente().

Na linha VelocidadeYOponenente = yBolinha - yRaqueteOponente - RaqueteComprimento / 2 - 30;, você está calculando a velocidade do oponente com base na posição da bolinha e da raquete. No entanto, você está usando a variável VelocidadeYOponenente em vez de VelocidadeYOponente, o que está causando o problema de a raquete do oponente sumir.

Para corrigir isso, basta alterar a linha para VelocidadeYOponente = yBolinha - yRaqueteOponente - RaqueteComprimento / 2 - 30;. Assim, a velocidade do oponente será calculada corretamente e a raquete não sumirá mais.

Aqui está o trecho corrigido:

function movimentaRaqueteOponente() {
    VelocidadeYOponente = yBolinha - yRaqueteOponente - RaqueteComprimento / 2 - 30;
    yRaqueteOponente += VelocidadeYOponente;
}

Espero que isso resolva o problema.

Se tiver mais alguma dúvida, é só mandar aqui!

Espero ter ajudado. Bons estudo!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Brigadão Nícolas!!! ajudou dms , tmj

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software