6
respostas

Vaquinha colidindo antes de chegar no carro.

Boa tarde galera! Reparei que a minha vaquinha está colidindo com o segundo carro preto (de baixo pra cima) antes mesmo de chegar no carro. Além disso, se o carro colidir na parte de baixo da vaquinha (tipo na boca ali logo abaixo dos olhos) isso nem mesmo conta como colisão. Seria algum bug na biblioteca? Como podemos resolver?

Segue link do projeto: https://editor.p5js.org/Nico_Fergui/sketches/kXC4ay-Er

6 respostas

Oii, Dev! Tudo bem por aí?

Para que eu possa te ajudar de forma mais assertiva, poderia me enviar o link do seu projeto, por favor.

Para realizar o compartilhamento, podemos seguir os passos abaixo:

  • Localizar a barra superior com os itens “File”, “Edit”, “Sketch”, e “Help” (em Português, as opções seriam: “Arquivo”, “Editar”, “Esboço” e “Ajuda”, respectivamente);
  • Clicar em “File”;
  • Selecionar a opção “Share” ou “Compartilhar”;
  • Copiar o link da terceira opção da lista (de cima para baixo);
  • Colá-lo em seu tópico do fórum.

Outra maneira de fazer isso é selecionando, copiando e colando a url do seu Sketch!

Aguardo o seu retorno.

Abraço!

Nathalia, boa tarde! Segue link do projeto: https://editor.p5js.org/Nico_Fergui/sketches/kXC4ay-Er

Boa tarde galera! Reparei que a minha vaquinha está colidindo com o segundo carro preto (de baixo pra cima) antes mesmo de chegar no carro. Além disso, se o carro colidir na parte de baixo da vaquinha (tipo na boca ali logo abaixo dos olhos) isso nem mesmo conta como colisão. Seria algum bug na biblioteca? Como podemos resolver?

Segue link do projeto: https://editor.p5js.org/Nico_Fergui/sketches/kXC4ay-Er

Oii, Nicole!

Agradeço por aguardar o retorno.

Obrigada por compartilhar o seu código conosco e gostaria de parabenizar por ele estar bem estruturado e bem comentado, os comentários nos ajudam a fixar todo o conhecimento obtido durante as aulas!

Pude observar que o paramento de posicaoYVaquinha na pasta vaquinha.js está um pouco alto, no valor de 370.

let posicaoYVaquinha = 370;

Ao alterar o valor para 360 a colisão antecipada para de ocorrer, veja o gif abaixo com o teste realizado depois da alteração:

Gif mostrando a colisão da vaquinha ao carro preto, jogo criado no p5js

O código com o valor posicaoYVaquinha alterado:

//variaveis do Ator "Vaquinha"

let posicaoXVaquinha = 85
let posicaoYVaquinha = 360;
let alturaVaquinha = 30;
let comprimentoVaquinha = 30;

Fique à vontade para copiar e testar em seu projeto. Qualquer dúvida que surgir estarei por aqui.

Espero ter ajudado!

Bons estudos e a gente se vê!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Olá Nathalia! tudo certo? Acontece o seguinte... O ator parou de colidir antes de chegar no carro. Porém, ainda persiste a questão que, não são todas as "partes" da vaquinha que reconhecem a colisão. Se o carro colidir na parte rosa da vaquinha ele simplesmente passa por ela e não reconhece que houve uma colisão, portanto ela não volta imediatamente para o inicio, só quando é atingida em outra parte... O que será que ocorre?

Link do projeto: https://editor.p5js.org/Nico_Fergui/sketches/kXC4ay-Er

Oii, Nicole!

O que pode ser feito para que o bug aconteça com a menor frequência possível é: na função verificaColisão() retiramos comprimentoVaquinha / 2, depois somamos o tamanho do diâmetro na posiçãoYVaquinha a 15. Desta forma aproximamos a colisão do ator com os carros:

function verificaColisao(){
  for(let i = 0; i < imagemCarros.length; i += 1){
    colidiu = collideRectCircle(posicaoXDosCarros[i], posicaoYDosCarros[i], comprimentoDosCarros[i], alturaDosCarros[i], posicaoXVaquinha, posicaoYVaquinha +15, 15 )

Após as alterações, execute o código e verifique se obterá êxito na colisão.

Veja o resultado após os testes:

Gif do jogo Freeway feito no programa p5.js, mostrando que acontece a colisão dos carros na parte inferior do ator vaquinha.

Deixo também o link da cópia do seu jogo com as alterações:

Espero ter ajudado!

Conte com a Alura para evoluir nos estudos.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!