1
resposta

[Dúvida] Só aparece uma raquete

//variaveis da bolinha
let xbolinha = 300;
let ybolinha = 200;
let diametro = 20;
let raio = diametro / 2 ;

//variaveis da velocidade da bolinha
let velxbolinha = 6;
let velybolinha = 6;
let compraquete = 10;
let altraquete = 90;

//variaveis da minha raquete
let xraquete = 5;
let yraquete = 150;

//variaveis da raquete do oponente
let xraqueteop = 585;
let yraqueteop = 150;
let velyoponente;

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

function draw() {
    background(0);
    mostrabolinha ();
    movimentabolinha ();
    colisaoborda ();
    mostraraquete ();
    movimentaminharaquete ();
    verificacolisaoraquete ();
    mostraraquete(xraqueteop, yraqueteop);
    movimentaraqueteoponente ();
}

function mostrabolinha(){
  circle(xbolinha, ybolinha, diametro);
}

function movimentabolinha (){
      xbolinha += velxbolinha;
      ybolinha += velybolinha;
}

function colisaoborda (){
      if (xbolinha + raio > width || xbolinha - raio < 0) {
        velxbolinha *= -1;
    }
    if (ybolinha + raio > height || ybolinha - raio < 0) {
        velybolinha *= -1;
    }
}

function mostraraquete(x,y){
  rect(x, y, compraquete, 
      altraquete);
}

function movimentaminharaquete (){
  if (keyIsDown(UP_ARROW)){
    yraquete -= 10;
    }
    if (keyIsDown(DOWN_ARROW)){
    yraquete += 10;
}
}

function verificacolisaoraquete (){
  if (xbolinha - raio < xraquete + compraquete && ybolinha - raio < yraquete + altraquete && ybolinha + raio > yraquete){
    velxbolinha *= -1;
  }
}

function movimentaraqueteoponente(){
  velyoponente = ybolinha - yraqueteop - compraquete /2 - 30;
  yraqueteop += velyoponente;

}

Inicialmente só aparecia a raquete do player, ao tentar seguir o gabarito e fazer correções, a raquete do player sumiu e apareceu só a do oponente. Também não entendi o que nesse código indicaria que seriam duas raquetes. Além disso, aparece essa mensagem no console:

p5.js says: [sketch.js, line 57] rect() was expecting Number for the first parameter, received an empty variable instead. If not intentional, this is often a problem with scope.

1 resposta

olá Vitor, o que acontece é que você precisa chama a função " mostraraquete " duas vezes dentro da função "Draw" uma com os parâmetros da raquete do jogador e outra vez com os parâmetros da raquete oponente.

espero ter ajudado.