2
respostas

[Dúvida] Apos importar biblioteca externa código raquete nao colide com bolinha

Apos importar o codigo da biblioteca percebi que a bolinha nao mais colide com a raquete,podem me ajudar a entender o porque ? https://editor.p5js.org/Matheus1108/sketches/Uf0l_0VZU

2 respostas
 verificacolisaoraquete(xraquete1,yraquete1);
 verificacolisaoraquete(xraqueteoponente,yraqueteoponente);  seu cód.
 raquete1(xraqueteoponente,yraqueteoponente);

verificaColisaoRaquete ( xRaqueteOponente, yRaqueteOponente );  anyone cód.
verificaColisaoRaqueteBorda ();
verificaColisaoRaqueteOponenteBorda ();

Olá Matheus, blz?!! Repare as 03 linhas de código na parte de baixo. O que vc consegue perceber, até mesmo com relação a próprio código que estas a escrever.? Isso porque são 03 linha, imagine 300 linhas... Enfim, veja como as linha de código da parte de baixo, facilitam a vc ler tudo e perceber as funções, as variáveis, inclusive as pontuações da linha de código. Quando vc olha, já reconhece, yRaqueteOponente, xRqueteOponente e todas as outras.. Dá para notar que o xRaqueteOponente visualmente se encontra a esquerda do yRaqueteOponente.

Agora, observe as 03 linhas de cima, que no caso eu retirei do seu código. Espero que não me leve a mal, estou a fazer isso com a melhor das boas intenções. Tenho olhado o seu código, um pouco, pelo menos. E meu caro, vou lhe dizer, para ler o seu código, é muito difícil , está tudo "grudado" não há diferença alguma nas palavras, parece uma única palavra a linha toda. E simplesmente porque vc não esta a seguir o que os instrutores da Alura, estão sempre a dizer: As boas práticas. Todos eles falam sobre uma regra (uma prática) conhecida como camelCase, em vc intercalar com letras minúscula no começo e segue com maiúscula e assim por diante, as funções e variáveis e tal. Quando eles dizem que vc não pode escrever código pra vc, eles estão dizendo uma grande verdade. Quando vc estiver a trabalhar , vc acredita que da maneira como estás a escrever, seria um padrão em alguma empresa? Estou a lhe falar como se fossemos colegas de trabalho, como colegas de estudo que somos, são conselhos que , humildemente lhe dou. E tomo essa liberdade, porque gosto muito de olhar os códigos do pessoal e ajudar no que for possível neste fórum, que também, me faz aprender bastante além das aulas. E sugiro a vc, a atentar -se a estes detalhes, que fazem muita diferença. Quando olhei um pouquinho só, o seu código, pensei, alguém tem que alertá-lo disso. Como sou formado em Administração e lidei muito com equipes, e era responsável por fazer este papel de :

"Olha aqui, temos que conversar, não é assim que se faz... temos regras.., "

Eu estou a lhe falar, e espero que entenda isso, porque foi com a melhor das boas intenções, novamente!!

Desejo-te bons estudos .

Oi Matheus, como eu havia dito, aqui está, seu código funcionando e com colisão. Não vou ater-me em detalhes do que havia errado, pois acredito que vc percebeu a ideia do que escrevi acima. Mas para dizer uma, se não me engano, faltavam chaves na função colisão, por isso não funcionavam. E se eu for elencar os detalhes, vou escrever um bocado. Deixo aqui umas imagens do antes e depois. Estou contente por ter resolvido e poder ajudar. E mantive o seu código idêntico. Sendo isso, a única coisa que não gostei, mas acredito que vc vai mudar isso, aplicando boas práticas :) . Desejo bons estudos!!!!

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

//velocidade da bolinha
let xvelocidade = 2;
let yvelocidade = 2;


//variaveis raquete 1
let xraquete1 = 5;
let yraquete1 = 150;
let raquetecomprimento = 10;
let raquetaltura = 90;




//variaveis do oponente
let xraqueteoponente = 585
let yraqueteoponente = 150
let velocidadeyoponente;


let colidiu = false;

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

function draw() {
  background(0);
  mostrabolinha();
  movebolinha();
  limitebolinha();
  raquete1(xraquete1,yraquete1);
  movimentominharaquete();
  //verificaMinhacolisaoraquete()
  verificacolisaoraquete(xraquete1,yraquete1);
  raquete2(xraqueteoponente,yraqueteoponente);
  movimentoraqueteoponente();
  verificacolisaoraquete(xraqueteoponente,yraqueteoponente);

}

function mostrabolinha (){
  circle(xBolinha,yBolinha, diametro)
}


function movebolinha(){
  xBolinha += xvelocidade
  yBolinha += yvelocidade
}


function limitebolinha(){
  if (xBolinha + raio  > width || xBolinha - raio < 0 ){
       xvelocidade *= - 1
 }                        
  if (yBolinha + raio > height || yBolinha - raio < 0 ){
      yvelocidade *= -1

  }
}


function raquete1(x,y){
  rect(x, y,raquetecomprimento,raquetaltura)
}

function raquete2(x,y){
  rect(x, y,raquetecomprimento,raquetaltura)
}

function movimentominharaquete(){
    if ( keyIsDown ( UP_ARROW )) {
    yraquete1 -= 10
    }

  if ( keyIsDown ( DOWN_ARROW )) {
    yraquete1 += 10;
  }
}

function movimentoraqueteoponente() {
  velocidadeyoponente = yBolinha - yraqueteoponente - raquetecomprimento / 2 -40;
  yraqueteoponente += velocidadeyoponente
}

// esta função está inutilizado com o comentário
function verificaMinhacolisaoraquete(){
    if (xBolinha-raio < xraquete1+raquetecomprimento &&
       yBolinha-raio < yraquete1+raquetaltura &&
         yBolinha+raio > yraquete1){
          xvelocidade *= -1
    }
  }

function verificacolisaoraquete(x,y) {
  colidiu = 
  collideRectCircle(x,y,raquetecomprimento,raquetaltura, xBolinha, yBolinha,raio)

  if (colidiu){
      xvelocidade *= -1
  }
}