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

A bolinha não toca raquete do Oponente.

// variaveis da bolinha. // O xBola serve para Movimentar a Bola da esquerda para direita. // O yBola serve para Movimentar a Bola para cima e para Baixo. // O dBola diametro (tamanho) da bola, Raio e distancia do centro da bola ate ponta.

let xBola = 300; let yBola = 200; let dBola = 30; let raio = dBola / 2;

//variaveis da raquete. Altura, Largura Comprimento das raquetes. let xRaquete = 5; let yRaquete = 190; let cRaquete = 10; let aRaquete = 120;

// variaveis velocidade da Bola. let velocidadexBola = 2; let velocidadeyBola = 2;

// variaveis raquete oponente. let xRaqueteoponente = 585; let yRaqueteoponente = 190; let velocidadeyOponente = 5; let velocidadexOponente = 5;

// createcanvas serve para fazer o tamanho do cenario. function setup() { createCanvas(600, 400); }

// o background serve para dar cor ao cenario. function draw() { background(0); mostrarBola(); movimentarBola(); verificarColisao(); mostrarRaquete(xRaquete,yRaquete); mRaquete(); vcRaquete(); mostrarRaquete(xRaqueteoponente,yRaqueteoponente); movimentarRaqueteOponente(); vcRaqueteOP();

}

// Função criada para mostrar a Bola. function mostrarBola (){ circle (xBola,yBola,dBola) }

// Função criada para Movimentar a Bola. function movimentarBola(){ xBola += velocidadexBola; yBola += velocidadeyBola; }

// Ao colocar o xBola maior que (>) Width a bola ira tocar ao lado direito da tela e voltar. // Ao colocar ou (||) xBola (<) menor que 0 a bola ira tocar ao lado esquerdo da tela e voltar. // Para descobrir o tamanho da nossa tela escreva a palavra Width. //Para a bola bater e não entrar Add + raio e - raio.

function verificarColisao(){ if (xBola + raio > width || xBola - raio < 0 ){ velocidadexBola *= -1;}

// Ao querer outra condição devemos abrir outro If com {}. // Para descobrir a altura da tela escreva palavra heigth. //Para a bola bater e não entrar Add + raio e - raio. if (yBola + raio > height || yBola - raio < 0){ velocidadeyBola *= -1;} }

//Função criada para Mostrar a Raquete e a Raquete do Oponente. function mostrarRaquete(x,y){ rect (x,y,cRaquete,aRaquete); }

// Função para subir a raquete subtrair o yRaquete -10. function mRaquete(){ if (keyIsDown(UP_ARROW)){ yRaquete -= 10; } // Função para subir a raquete somar o yRaquete +10. if (keyIsDown(DOWN_ARROW)){ yRaquete += 10; } }

// Função para colidir a bola com a raquete e as Bordas. function vcRaquete(){ if (xBola - raio < xRaquete + cRaquete && yBola - raio < yRaquete + aRaquete && yBola + raio > yRaquete) { velocidadexBola *= -1; } }

function vcRaqueteOP(){ if (xBola - raio > xRaqueteoponente + cRaquete && yBola - raio > yRaqueteoponente + aRaquete && yBola + raio < yRaqueteoponente) { velocidadexBola *= -2; } }

function movimentarRaqueteOponente(){ velocidadeyOponente = yBola - yRaqueteoponente - cRaquete / 2 - 30; yRaqueteoponente += velocidadeyOponente;

}

2 respostas
solução!

Na função vcRaqueteOP tenta inverter os valores do bola - raio e bola + raio, tipo assim: function vcRaqueteOP(){ if (xBola + raio > xRaqueteoponente + cRaquete && yBola + raio > yRaqueteoponente + aRaquete && yBola - raio < yRaqueteoponente) { velocidadexBola *= -2; } }

Obrigado amigo deu certo aqui.

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