4
respostas

[Dúvida] Eu não consigo fazer com que a bolinha colida com a raquete do OPONENTE, passa direto!

Poderiam me ajudar, não consigo ir à diante... não consigo fazer com que a bolinha colida com a raquete do oponente, vejam abaixo meu script inteiro: Conseguem me ajudar por favor?

//Variaveis Desenho da Bolinha let xBolinha = 300; let yBolinha = 200; let diametro = 17; let raio = diametro / 2;

//Variaveis Velocidade da Bolinha let velocidadeXbolinha = 5; let velocidadeYbolinha = 5;

//Variaveis da Raquete let xRaquete = 5; let yRaquete = 150; let raqueteComprimento = 10; let raqueteAltura = 80;

//Variaveis Raquete Oponente let xRaqueteOponente = 585; let yRaqueteOponente = 150; let raqueteComprimentoOponente = 10; let raqueteAlturaOponente = 80;

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

function draw() { background(0); mostraBolinha (); movimentaBolinha(); verificaColisaoBorda(); mostraRaquete(); movimentaRaquete1(); verificaColisaoRaquete(); mostraRaqueteOponente(); movimentaRaqueteOponente(); }

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 mostraRaquete(){ rect (xRaquete, yRaquete, raqueteComprimento, raqueteAltura); }

function mostraRaqueteOponente(){ rect (xRaqueteOponente, yRaqueteOponente, raqueteComprimentoOponente, raqueteAlturaOponente); }

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

function verificaColisaoRaquete() { if (xBolinha - raio < xRaquete + raqueteComprimento && yBolinha - raio < yRaquete + raqueteAltura && yBolinha + raio > yRaquete) { velocidadeXbolinha *= -1; } }

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

4 respostas

Olá, Thiago! Como está?

Você precisa realizar upload da biblioteca do p5.js, chamar a biblioteca no index.html e seguir os passos na aula 04.

Fico à disposição.

Bons estudos!

Obrigado Camila,

Mas não tem outra solução sem ser baixar o arquivo da biblioteca, e escrever um comando direto assim como foi feito na raquete principal?

Abraço

Oi, Thiago!

Ahhh, sim! Agora entendi!

Há sim essa possibilidade. Basta você inverter a lógica de colisão para que identifique o lado oposto da tela do p5.js.

Vou deixar uma solução incrível desenvolvida pela aluna Alura Jéssica Cordeiro : Link para o tópico "Desafio de movimentar a raquete do oponente sem a Biblioteca"

Bons estudos!

Boa sorte.