1
resposta

função pode ser mover verificando as laterais

após implementar os comandos para se mover para esquerda e direita

function movimentaAtor(){
  if (keyIsDown(UP_ARROW)){
    yAtor -= 3;
  }
  if (keyIsDown(DOWN_ARROW)){
    if(yAtor < 366){
    yAtor += 3;
    }
  }
  if (keyIsDown(LEFT_ARROW)){
    if(xAtor > 0){
    xAtor -= 3;
    }
  }
  if (keyIsDown(RIGHT_ARROW)){
    if(xAtor < 470){
    xAtor += 3;
    }
  }
} 

tentei implementar na função pode ser mover, a verificação com as laterais, porém não consegui, única forma que consegui fazer o jogo rodar como eu queria foi excluindo a função pode se mover e implementando diretamente na função movimenta Ator

Gostaria de saber se alguém conseguiu implementar um IF na funçao podeSeMover, que faça essa verificaçao no fundo e nas laterais ?

1 resposta

Olá Adriano, tudo bem? Espero que sim!

Aqui está um exemplo de como você pode implementar a verificação de movimento nas laterais dentro da função podeSeMover:

function podeSeMover(x, y) {
  if (x < 0 || x > 470 || y < 0 || y > 366) {
    return false; // Não pode se mover para fora do cenário
  }

  // Aqui você pode adicionar outras condições para verificar se o ator pode se mover em determinadas posições específicas

  return true; // Pode se mover
}

function movimentaAtor() {
  if (keyIsDown(UP_ARROW)) {
    if (podeSeMover(xAtor, yAtor - 3)) {
      yAtor -= 3;
    }
  }
  if (keyIsDown(DOWN_ARROW)) {
    if (podeSeMover(xAtor, yAtor + 3)) {
      yAtor += 3;
    }
  }
  if (keyIsDown(LEFT_ARROW)) {
    if (podeSeMover(xAtor - 3, yAtor)) {
      xAtor -= 3;
    }
  }
  if (keyIsDown(RIGHT_ARROW)) {
    if (podeSeMover(xAtor + 3, yAtor)) {
      xAtor += 3;
    }
  }
}

Nesse exemplo, a função podeSeMover recebe as coordenadas x e y do ator como argumentos e verifica se ele está dentro dos limites do cenário. Se o ator estiver fora dos limites, a função retorna false, indicando que ele não pode se mover. Caso contrário, a função retorna true, indicando que ele pode se mover.

Dentro da função movimentaAtor, antes de atualizar as coordenadas do ator, verificamos se ele pode se mover para a nova posição chamando a função podeSeMover com as coordenadas atualizadas. Se ele puder se mover, as coordenadas são atualizadas; caso contrário, o ator permanece na mesma posição.

Esse código deve permitir que o ator se mova dentro dos limites do cenário, evitando que ele saia para fora. Você também pode adicionar outras condições dentro da função podeSeMover para verificar se o ator pode se mover em posições específicas, se necessário.

Espero ter ajudado!

Caso tenha dúvidas, fico à disposição.

Abraços!