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

Não consigo colocar a function no if

Olá, consegui fazer o if que limita a perda de ponto e funciona normal, porém quando eu crio a function e coloco ela no lugar do "if (placar > 0)" não funciona mais, e o jogo começar a deixar a marcar pontos negativos, segue as linhas.

function verficaColisao (){
 //collideRectCircle(x1, y1, width1, height1, cx, cy, diameter) 
  for (let i = 0; i < imgCarros.length; i = i + 1){
    hit = collideRectCircle (xCarros [i], yCarros[i],compCarro,altCarro, xAtor, yAtor,10)
    if (hit){
      resetPosIni();
      if (placarNaoNegativo()){
        placar -= 1;
      }
    }
  }
}

function placarNaoNegativo(){
  placar > 0;
}
2 respostas

Revisando o código descobri meu erro, na function placarNaoNegativo tinha que colocar o return antes de placar > 0. Fiz a alteração e funciona corretamente agora. Porém permaneço com uma dúvida, porque quando criei a function de resetar a posição inicial do ator não coloquei o return e a function funciona corretamente, porque isso ocorre?

solução!

Olá Flávio, tudo bem? Espero que sim!

Você utiliza o return quando quer retornar um valor ou algum resultado da função, no caso da função placarNaoNegativo() ela não estava realizando nenhuma ação, simplesmente comparando placar > 0. Então quando você adicionou o return placar > 0, toda vez que for chamar a função placarNaoNegativo(), ela irá retornar essa verificação de verdadeiro ou falso.

Algumas funções não necessitam de return porque não precisam retornar um valor ou resultado, porque elas já executam ações por si só. É o caso da sua função verificaColisao() que já modifica o valor da variável placar, retirando 1 do valor atual ou executa a função resetPosIni() que não se encontra o código aqui mas acredito que modifique variáveis em sua execução.

Espero que tenha sido claro.

Estou à disposição. Bons estudos!