Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Nao Consigo criar uma raquete para o oponente

Atualmente estou tentando criar uma raquete para o adversario mas sem exito vou deixar abaixo os codigos que estou utilizando se alguem puder ajudar agradeço

//variaveis da bolinha 
let xBolinha = 300;
let yBolinha = 200;
let diametro = 15;
let raio = diametro / 2;

//velocidade da bolinha 
let velocidadeXbolinha = 6;
let velocidadeYbolinha = 6;

// variaveis da raquete 
let x_raquete = 5; 
let y_raquete = 200; 
let esp_raquete = 10; 
let alt_raquete = 100;

//variaveis oponente
let x_oponente = 585;
let y_oponente = 200;

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

function draw(){
background(0);
mostraBolinha();
movimentaBolinha();
verificaColisaoBorda();
raqueteJogador();
movimentaRaqueteJogador();
colisaoRaquete();
raqueteOponent();
}


function mostraBolinha(){
circle (xBolinha,yBolinha,diametro); 
}

function movimentaBolinha(){
xBolinha += velocidadeXbolinha;
yBolinha += velocidadeYbolinha; 
}

function verificaColisaoBorda(){
if (xBolinha+raio>width || 
xBolinha-raio < 0){
velocidadeXbolinha *= -1;
}
if(yBolinha+raio > height ||
yBolinha-raio <0 ){
velocidadeYbolinha *= -1;} 
}

function raqueteJogador(){
rect (x_raquete,y_raquete,esp_raquete,alt_raquete);
}

function raqueteOponent(){x_oponente,y_oponente,esp_raquete,alt_raquete}

function movimentaRaqueteJogador(){
  if (keyIsDown(UP_ARROW)){
    y_raquete -= 10;
}
  if (keyIsDown(DOWN_ARROW)){
     y_raquete += 10;
}
}

function colisaoRaquete(){
  if (xBolinha -raio < x_raquete+esp_raquete && yBolinha -raio < y_raquete + alt_raquete && yBolinha +raio > y_raquete){
    velocidadeXbolinha *= -1
  }
}
1 resposta
solução!

Oi Igor, tudo certo por aí?

Para que sua raquete do oponente possa aparecer, é necessário fazer alguns ajustes no código. Vamos lá?

Perceba que em raqueteJogador, antes de preencher os parâmetros de posição e tamanho da raquete, há a palavra rect. Essa é uma função nativa da plataforma P5.JS que desenha um retângulo. Sem ela, o programa não sabe o que fazer com as informações que estamos deixando ali dentro da função. Em raqueteOponent, chame também a função rect e coloque os parâmetros entre parênteses, assim:

function raqueteJogador(){
  rect(x_raquete,y_raquete,esp_raquete,alt_raquete);
}

function raqueteOponent(){
 rect(x_oponente, y_oponente, esp_raquete, alt_raquete);
}

Ainda assim a raquete não está aparecendo!

Na verdade, ela está além do limite que foi designado para a sua tela. Veja que em setup(), o canvas foi criado com os valores 500, 400: x sendo 500 e y sendo 400:

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

E o valor atribuído para x_oponent foi 585.

let x_oponente = 585;

Assim, a raquete aparece 85 pixels após o fim da tela. Mude esse valor para 485 ou o valor de x do canvas para 600, e sua raquete já estará entre nós!

Espero ter ajudado, Igor. Estou à disposição.

Forte abraço!

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