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

[Dúvida] Por que a função voltaAtorParaPosicaoInicial não precisa colocar na função Draw?

Pessoal, por que a função voltaAtorParaPosicaoInicial não precisa colocar na função Draw? O instrutor fez desse jeito e funcionou muito bem, queria entender o motivo.

function setup() {
  createCanvas(500, 400);
}

function draw(){
  background(imagemDaEstrada);
  mostraAtor();
  mostraCarro(); 
  movimentaCarro();
  movimentaAtor();
  voltaPosicaoInicialDoCarro();
  verificaColisao();
  incluiPontos();
  marcaPontos();
}
//códigos do ator
let xAtor = 120;
let yAtor = 370;
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;
  }
}

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

function voltaAtorParaPosicaoInicial(){
  yAtor = 374;
}

function incluiPontos(){
  textAlign(CENTER);
  textSize(25);
  fill(color(255,240, 0));
  text(meusPontos, width / 3, 28);
}

function marcaPontos(){
  if(yAtor < 4){
    meusPontos += 6;
    voltaAtorParaPosicaoInicial()
  }
}
1 resposta
solução!

Oi, João, a função voltaAtorParaPosicaoInicial() é chamada pela função verificaColisao() ou marcaPontos() quando necessário

Na função draw() ficam as funções que precisão se executas continuamente para manter a dinâmica do jogo

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software