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

bolinha movimenta só na direção Y

Pessoal, boa tarde Alguém me ajuda, a minha bolinha só vai no eixo y e a raquete do oponente acompanha a mesma.

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

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

// variaveis da raquete let xRaquete = 0; let yRaquete = 150; let comprimentoRaquete = 10; let alturaRaquete = 90;

// variaveis do oponente let xRaqueteOponente = 590; let yRaqueteOponente = 150;

let colidiu = false;

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

function draw() { background(0); mostraBolinha(); movimentaBolinha(); verificaColisaoBorda(); mostraRaquete(xRaquete, yRaquete); verificaColisaoRaquete(xRaquete, yRaquete); verificaColisaoRaquete(xRaqueteOponente, yRaqueteOponente); //verificaColisaoRaquete(); verificaColisaoRaquete(); mostraRaquete(xRaqueteOponente, yRaqueteOponente); 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(x, y) { rect(x, y, comprimentoRaquete, alturaRaquete) }

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

function verificaColisaoRaquete(){ if (xBolinha - raio < xRaquete + comprimentoRaquete && yBolinha - raio < yRaquete + alturaRaquete && yBolinha + raio > yRaquete) { velocidadeXBolinha *= -1; } }

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

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

}

4 respostas
solução!

Fala ai Neto, tudo bem? Consegue compartilhar o link do editor web? Assim fica mais fácil para simular o problema por aqui e analisá-lo com mais calma.

Fico no aguardo.

Matheus, obrigado pelo retorno, consegui acha o erro. Só que agora não consigo fazer ponto no oponente, já fiz um parelhamento com o código do professor e está tudo igual. vou compartilhar o código.

Fala ai Neto, tudo bem? A questão do ponto no oponente não será possível mesmo, a maneira que foi feito o código deixou o oponente muito inteligente.

Desculpa pela demora, estava bem corrido as coisas por aqui.

Espero ter ajudado.

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