4
respostas

Minha vaquinha não sobe e nem desce mais!

Pessoal!

Meu personagem não sobe mais.

Eu havia colocado ele para subir, descer e andar pela direita e esquerda também.

Depois que inseri o p5.collide2d.js, meu personagem parou de se mexer para cima e para baixo.

//variáveis do ator let yAtor = 366; let xAtor = 100; let colisao = false; let meusPontos = 0;

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

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

function verificaColisao(){ //collideRectCircle(x1, y1, width1, height1, cx, cy, diameter) for (let i = 0; i < imagemDosCarros.length; i++){ colisao = collideRectCircle(xCarros[i], yCarros[i], comprimentoCarro, alturaCarro, xAtor, yAtor, 15) if (colisao){ voltaAtorParaPosicaoInicial(); } } }

function voltaAtorParaPosicaoInicial(){ yAtor = 366; }

function incluiPontos(){ textAlign(CENTER); textSize(25); fill(color((255, 240, 70))); text(meusPontos,width / 5, 27); }

function marcaPonto(){ if (yAtor < 15){ meusPontos += 1; voltaAtorParaPosicaoInicial(); } }

Vocês poderiam me ajudar nessa?

Obrigado!

4 respostas

Boa tarde Rômulo, se puder compartilhar o link edit do projeto vai dar para vermos mais detalhadamente.

Boa tarde Pedro!

Segue o link do meu projeto para conhecimento.

https://editor.p5js.org/romuloci/full/jBmb_-iwk

Obrigado!

Olá Rômulo, pelo que testei aqui, com essa mudança em draw você já consegue movimentar o y do ator.

function draw() {
  background(imagemDaEstrada);
  mostraAtor();
  mostraCarro();
  movimentaCarro();
  movimentaAtor();
  voltaPosicaoInicialDoCarro();
  verificaColisao();
  incluiPontos();
  marcaPonto();

}
function verificaColisao(){
  //collideRectCircle(x1, y1, width1, height1, cx, cy, diameter)
  for (let i = 0; i < imagemDosCarros.length; i++){
    colisao = collideRectCircle(xCarros[i], yCarros[i], comprimentoCarro, alturaCarro, xAtor, yAtor, 15)
    if (colisao){
      voltaAtorParaPosicaoInicial();
      meusPontos = 0;
      print("Colidiu")
    }
  }
}

Apenas retirei o "voltaAtorParaPosicaoInicial();" de draw(); e inclui caso você colida com algum carro, seus pontos zeram.

Olá Pedro!

Funcionou muito bem!

Aproveitei para diminuir em 1 ponto cada vez que houver a colisão.

function verificaColisao(){ //collideRectCircle(x1, y1, width1, height1, cx, cy, diameter) for (let i = 0; i < imagemDosCarros.length; i++){ colisao = collideRectCircle(xCarros[i], yCarros[i], comprimentoCarro, alturaCarro, xAtor, yAtor, 15) if (colisao){ voltaAtorParaPosicaoInicial(); meusPontos -= 1; print ("Colidiu") } } }

Muito obrigado pela atenção!