1
resposta

Implementação de movimentos laterais - FreeWay

Oi pessoal, tudo bem?

Mostrei o jogo desenvolvido para meu amigo e ele me perguntou se poderia implentar as setas laterais para ajudar na jogatina.

Então fiz algumas alterações no código e cheguei neste resultado:

// ator
let yAtor = 366;
let xAtor = 85;
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;
    }
  }
  if (keyIsDown(RIGHT_ARROW)){
    if (podeSeMoverLateral("Direita")){
      xAtor += 3;
    }
  }
  if (keyIsDown(LEFT_ARROW)){
    if (podeSeMoverLateral("Esquerda")){
      xAtor -= 3;
    }
  }
}

function verificaColisao(){
  for (let i = 0; i < imagemCarros.length; i = i + 1){
    colisao = collideRectCircle(xCarros[i],yCarros[i],comprimentoCarro, alturaCarro, xAtor, yAtor, 15);
    if (colisao){
      voltaAtorParaPosicaoInicial();
      somDaColisao.play();
      if (pontosMaiorQueZero()){
        meusPontos -= 1;
      }
    }
  }
}

function voltaAtorParaPosicaoInicial(){
  yAtor = 366;
  xAtor = 85;
}

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 pontosMaiorQueZero(){
  return meusPontos > 0;
}

function podeSeMover(){
  return yAtor < 366;
}

function podeSeMoverLateral(direcao){
  if (direcao == "Direita"){
    return xAtor < 452;
  }
  if (direcao == "Esquerda"){
    return xAtor > 10;
  }
}

Link do Jogo: https://editor.p5js.org/diego-paulucci/full/9-T1gTwvR

O que acharam? Ele gostou :)

1 resposta

Muito bom Aluno!!! Bons estudos!!