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

Função booleana

Eu criei as condições de marcação de ponto, perda e de impedimento do personagem sair da tela, mas sem tantas funções booleanas. Segue o código:

//variáveis do ator
let xAtor = 100;
let yAtor = 368;
let alturaAtor = 30;
let larguraAtor = 30;
let colisao = false;
let pontos = 0;

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

function movimentaAtor() {
  if (keyIsDown(UP_ARROW)) {
    yAtor -= 5;
  }

  if (keyIsDown(DOWN_ARROW)) {
    yAtor += 5;
  }

  if (keyIsDown(RIGHT_ARROW)) {
    xAtor += 5;
  }

  if (keyIsDown(LEFT_ARROW)) {
    xAtor -= 5;
  }
}

function verificaColisao() {
  // //collideRectCircle(x1, y1, width1, height1, cx, cy, diameter)
  for (let i = 0; i < imagensDosCarros.length; i++) {
    colisao = collideRectCircle(xCarros[i], yCarros[i], 40, 50, xAtor, yAtor, 15);
    if (colisao) {
      perdePonto();
      voltaAtorParaAPosicaoInicial();
    }
  }
}

function voltaAtorParaAPosicaoInicial() {
  xAtor = 100;
  yAtor = 368;
}

function ultrapassouABordaDaTela() {
  if (xAtor < 0) {
    voltaAtorParaAPosicaoInicial();
  }

  if (yAtor > 368) {
    voltaAtorParaAPosicaoInicial();
  }
}

function incluiPontos() {
  textAlign(CENTER);
  textSize(23);
  fill(color(255,255,0));
  text(pontos, 100, 27);
}

function perdePonto() {
  if (pontos > 0) {
    pontos--;
  }
}

function marcaPonto() {
  if (yAtor < 0) {
    pontos++;
    voltaAtorParaAPosicaoInicial();
  }
}

Não usar funções booleanas para verificações é um problema? Ou é mais recomendados que a usemos mesmo?

1 resposta
solução!

Fala Lucas, tudo certo?

Nós podemos tanto utilizar funções, como expressões booleanas e obter o mesmo resultado. O que precisamos ter em mente nesse caso são fatores conceituais, como:

  • Será que utilizar funções pode ajudar na legibilidade do meu código, de alguma maneira?
  • Será que eu vou precisar desse mesmo trecho de código em outro lugar da aplicação?

Ou então outros questionamentos. Em geral, o funcionamento será o mesmo e é puramente um processo de tomada de decisão, do que se achar mais coerente dentro do projeto. Minha dica é usar funções quando o código estiver difícil de ler, e dar a elas nomes expressivos, ou quando você precisa repetir muito um mesmo trecho de código.

Em caso de dúvidas, estou por aqui. =)

Um grande abraço e bons estudos!

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