Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Pontos Negativos.

Boa tarde, pessoal! tudo bem?

Gente, estava seguindo as instruções e fazendo o código, porém durante os testes de sons percebi que jogo começou a fazer as contagens negativas. O jogo estava funcionando dentro do padrão.

podem me ajudar? muito grato.

segue o código:

//código do ator
let xAtor = 80;
let yAtor = 366;
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)){
    if(podeSeMover()){
       yAtor +=3;
    }
  }
}

function verificaColisao(){

  //collideRectCircle(x1, y1, width1, height1, cx, cy, diameter)
  for (let i = 0; i < imagemCarros.length; i++){

    colisao = collideRectCircle(xCarros[i],yCarros[i],comprimentoCarro,alturaCarro,xAtor,yAtor,15)
      if(colisao){
      voltaAtorParaPosicaoInicial();
        somDacolisao.play();
       if(pontosMaiorQueZero)
      meusPontos -= 1
     }

 function pontosMaiorQueZero(){
    return meusPontos > 0   
 } 
 }

}

function voltaAtorParaPosicaoInicial(){
  yAtor = 366;
}

  function incluiPontos(){

    textAlign (CENTER);
    textSize (25);
    fill(color(255,240,60))
    text(meusPontos, width / 5, 27);
  }

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

}

function podeSeMover(){
  return yAtor < 366;{

  }
}




{ 


}
1 resposta
solução!

Oii Rafael, tudo bem por aí?

Isso está acontecendo pois a função pontosMaiorQueZero não está sendo executada dentro da condição if, na função de colisão. Para que ela seja executada, é preciso que os parênteses estejam ali, junto com o nome da função.

Percebi também que algumas chaves ( { } ) estavam em lugares um pouco confusos, no seu código. Por enquanto estava tudo funcionando normalmente, mas no futuro, com o decorrer das aulas, isso poderia acarretar em alguns problemas. Envio aqui o código corrigido:

//código do ator
let xAtor = 80;
let yAtor = 366;
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)){
    if(podeSeMover()){
       yAtor +=3;
    }
  }
}

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

function pontosMaiorQueZero(){
    return meusPontos > 0   
}

function voltaAtorParaPosicaoInicial(){
  yAtor = 366;
}

  function incluiPontos(){

    textAlign (CENTER);
    textSize (25);
    fill(color(255,240,60))
    text(meusPontos, width / 5, 27);
  }

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

}

function podeSeMover(){
  return yAtor < 366;
} 

Abraço, Rafa. Fico à disposição.

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