3
respostas

colissão com a raquete do opononte causa efeito inesperado. (sem biblioteca)

//deixar a colisão com a raquete do oponente no código inibe o movimento do eixo x da bolinha, alem disso a bolinha fica piscando na tela.

//ao deixar como comentario no codigo (assim desativando) a colisão com o a raquete do oponente tudo volta funcionar.

https://editor.p5js.org/math_GL/sketches/0cnGAH9BP

codigo:

//variaveis bolinha

let xBolinha = 300; var yBolinha = 200; let diametro = 20; var velocidadeXBolinha = 6; let velocidadeYBolinha = 6; var raio = diametro /2;

//variaveis raquete

let xRaquete = 5; var yRaquete = 150; let larguraRaquete = 12; var alturaRaquete = 90;

//variaveis raquete oponente

let xRaqueteOp = 584; var yRaqueteOp = 150; let velocidadeOp

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

function movimentaBolinha (){ xBolinha += velocidadeXBolinha; yBolinha += velocidadeYBolinha; }

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

if (yBolinha > height - raio || yBolinha < 0 + raio){
  velocidadeYBolinha *= -1;}

}

function mostraRaquete(){ rect(xRaquete, yRaquete, larguraRaquete, alturaRaquete); }

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

function colisaoRaquete(x, y){ if (xBolinha - raio < x + larguraRaquete && yBolinha < y + raio + alturaRaquete && yBolinha > y - raio){ xBolinha *= -1 } }

function mostraRaqueteOp(){ rect(xRaqueteOp, yRaqueteOp, larguraRaquete, alturaRaquete); }

function movimentaRaqueteOp(){ velocidadeOp = yBolinha - larguraRaquete /2 -30 yRaqueteOp = velocidadeOp }

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

function draw() { background(0);

mostraBolinha();
movimentaBolinha();
verificaColisaoBorda();

mostraRaquete();
movimentaRaquete();
colisaoRaquete(xRaquete, yRaquete);

mostraRaqueteOp();
movimentaRaqueteOp();
//colisaoRaquete(xRaqueteOp, yRaqueteOp);

}

3 respostas

acabei mudando o codigo apenas para continuar as atividades, mas outro problema surgiu agr quando acontece a colisão com a raquete do oponente a bolinha parece q some e volta depois, como não afeta a funcionalidade do jogo e apenas visualmente vou seguir assim, mas se alguém poder me ajudar a resolver algum dos dois problemas.

o link segue o mesmo : https://editor.p5js.org/math_GL/sketches/0cnGAH9BP

ao continuar as atividade mais problemas apareceram, agora por conta da colisão da raquete do oponente os pontos são contados errados. não consigo achar a logica como isso interfere em algo. decidi q vou refazer o exercício usando biblioteca mas vou manter esse projeto disponível pq estou curioso para alguém me explicar como resolver o problema ou ao menos como esse problema funciona

Fala, Matheus! Tudo bem contigo?

Desculpe a demora em dar um retorno

Realmente não usar a biblioteca do p5.js faz com que demos muitas voltar para chegar em um resultado!

Você ainda chegou longe! Parabéns!

Eu aconselho a desenvolver o projeto utilizando a biblioteca, como apresentado no curso, para depois desenvolver literalmente "na mão". Assim fica mais fácil saber onde você quer chegar!!!

É só um conselho!

Tem um canal no Youtube chamado The Code Train (inglês) focado em projetos p5.js.

Vale dar uma conferida!!!

Espero ter contribuído, Matheus

Um abraço e bons estudos