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

[Dúvida] Ator não colide com os carros

boa tarde! Já revisei diversas vezes o código, e não encontrei o erro. O ator não colide com os carros. Podem ajudar?

//código do ator
let xAtor = 100;
let yAtor = 366;
let colisao = false;

function mostraAtor(){
  image(imagemDoAtor, xAtor, yAtor, 30, 30);
}

function movimentaAtor(){
  if (keyIsDown(UP_ARROW)){
    yAtor -= 3;
  }
  if (keyIsDown(DOWN_ARROW)){
    yAtor += 3;
  }
}

function verificaColisao(){
  for (let i = 0; i < imagemCarros.length; i++){
    colisao = collideRectCircle(xCarros[i], yCarros[i], comprimentoCarro, alturaCarro, xAtor, yAtor, 15);  
    if (colisao){
      colidiu();
    }
  }
}

function voltarParaPosicaoInicial(){
  yAtor = 366;
}

https://editor.p5js.org/laisbecker12/sketches/hP7OGc3--

3 respostas

Oi Laís, tudo bem com você?

Sinto muito que está com esse problema. Com esse link que você compartilhou, eu tenho acesso apenas ao projeto final, não consigo visualizar o código. Para que eu consiga te ajudar de forma mais assertiva, preciso do link com o código do seu projeto.

Se você quiser compartilhar apenas o resultado do seu projeto, precisa copiar o link que esta em "Tela Cheia". Agora, se você quiser compartilhar o projeto com o código dele junto, precisa copiar o link que está em "Editar".

p5.js:tela compartilhar com as opcões "tela cheia" e "editar" destacadas

Fico no aguardo do link com o seu código.

Abraços e bons estudos!

Bom dia! Prontinho, segue o link do código inteiro https://editor.p5js.org/laisbecker12/sketches/hP7OGc3--

solução!

Oi Lais, tudo bem com você?

Analisei seu código e para que o ator sofra a colisão com os carros é necessário que você faça algumas mudanças, sendo elas:

Adicionar a função "verificaColisao()" dentro de draw() no sketch.js.

function draw() {
  background(imagemDaEstrada);
  mostraAtor();
  mostraCarro();
  movimentaCarro();
  movimentaAtor();
  verificaColisao(); // adicione aqui
  voltaPosicaoInicialDoCarro();
}

E no arquivo ator.js modifique a function verificaColisao():

function verificaColisao(){
  for (let i = 0; i < imagemCarros.length; i ++){
    colisao = collideRectCircle(xCarros[i], yCarros[i], comprimentoCarro, alturaCarro, xAtor, yAtor, 15);
  if (colisao){
      voltarParaPosicaoInicial()
    }
  }
}

Dessa forma, o ator irá colidir com o carro.

Espero ter ajudado, caso tenha mais dúvidas, estou à disposição.

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