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

Minha Bolinha trava no centro da quadra.

Após colocar o código sem importa o comando a minha bolinha esta travada no centro do mapa não sei porque.

`

`//corpo da bolinha //corpo da bolinha //corpo da bolinha var xBolinha = 300; var yBolinha = 200; var diametro = 15; var raio = diametro /2;

//velocidade da bolinha let velocidadeX = 6; let velocidadeY = 6;

//corpo da raquete let xdaRaquete = 2; let ydaRaquete = 150; let larguraRaquete= 10 let alturaRaquete= 90;

//corpo da raquete oponente let xRaqueteOponente = 588; let yRaqueteOponente = 150; let velocidadeYOponente;

function setup() { createCanvas(600, 400); } function draw() { background(0); Bolinha(); Velocidade(); Colisao(); MinhaRaquete(xdaRaquete, ydaRaquete); movimentoMinhaRaquete(); verificaColisaoRaquete(xdaRaquete, ydaRaquete); verificaColisaoRaquete(xRaqueteOponente, yRaqueteOponente); MinhaRaquete(xRaqueteOponente, yRaqueteOponente); movimentaRaqueteOponente();

}

function Bolinha(){

circle(xBolinha, yBolinha, diametro);

}

function Velocidade(){

xBolinha += velocidadeX;
yBolinha += velocidadeY;

}

function Colisao(){

 if (xBolinha + raio > width || xBolinha - raio < 0) {
    velocidadeX *= -1;
}
if (yBolinha + raio > height || yBolinha - raio < 0) {
    velocidadeY *= -1;
}

}

function MinhaRaquete(x, y){

rect(x, y, larguraRaquete, alturaRaquete)

}

function movimentoMinhaRaquete(){

if(keyIsDown(UP_ARROW)){

  ydaRaquete -= 10;

}

if(keyIsDown(DOWN_ARROW)){

  ydaRaquete += 10;


}

}

function verificaColisaoRaquete(x, y){

if(xBolinha - raio < x + larguraRaquete && yBolinha - raio < y + alturaRaquete && yBolinha + raio > y)

  velocidadeX *= -1;

}

function movimentaRaqueteOponente(){

velocidadeYOponente = yBolinha - yRaqueteOponente - larguraRaquete /2 - 30; yRaqueteOponente += velocidadeYOponente;

}

2 respostas

Olá,

Todo o teu post ficou zuado. Vc pode editar ele e colocar toda a parte que é códico fonte entre trêis (3) crazes. Trêis para abrir trêis para fechar.

Nem precisa intercalar. Pode colocar todo ele entre as crazes. Inclusive vc pode usar o botão </> que o próprio forum disponibiliza na barra de tarefas do post.

solução!

Olá, João Victor, essa dica do Diego é bem importante: sempre que precisar colar um código aqui no fórum, utilize o botão </>, fica melhor para entendermos a dúvida e tentar ajudar.

O problema do seu código está aqui:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Devemos utilizar o mesmo nome que a variável foi declarada. Então, você precisa substituir o x e o y por xdaRaquete e ydaRaquete respectivamente, assim:

function verificaColisaoRaquete(x, y){
     if(xBolinha - raio < xdaRaquete + larguraRaquete && yBolinha - raio < ydaRaquete + alturaRaquete && yBolinha + raio > ydaRaquete){
            velocidadeX *= -1;
     }
}

Espero ter ajudado. Bons estudos!