3
respostas

AJUDA COM VOLTA AO INICIO DO ATOR

Boa tarde!

Finalizei meu jogo conforme o curso, porém, percebo que sempre que o ator volta posição inicial, ele logo invade a primeira faixa, pois ainda estou pressionando a seta para cima.

É difícil explicar por aqui mas o que eu queria é: Sempre que o ator marcar ponto, volte a posição inicial, e TENHA UM DELAY até que a "seta para cima" conduza o ator para ima efetivamente.

Conseguiriam me ajudar com isso?

Obrigado desde ja!

3 respostas

Olá, Luiz!

Entendi sua dúvida. Você gostaria que, após o ator marcar um ponto, ele volte à posição inicial e haja um atraso antes que a tecla de seta para cima comece a mover o ator novamente.

Uma maneira de fazer isso é adicionar um pequeno atraso antes de permitir que o ator se mova novamente. Você pode usar a função setTimeout do JavaScript para criar esse atraso. Aqui está um exemplo de como você pode implementar isso no seu código:

function marcaPonto() {
  // Código para marcar o ponto

  // Volta à posição inicial
  ator.y = 366;

  // Atraso de 1 segundo antes de permitir o movimento novamente
  setTimeout(function() {
    podeMover = true;
  }, 1000);
}

function keyPressed() {
  if (keyCode === UP_ARROW && podeMover) {
    // Código para mover o ator para cima
  }
}

Nesse exemplo, a função marcaPonto é chamada sempre que o ator marca um ponto. Dentro dessa função, o ator é movido de volta à posição inicial e, em seguida, é definido um atraso de 1 segundo usando a função setTimeout. Após o atraso, a variável podeMover é definida como true, permitindo que o ator se mova novamente quando a tecla de seta para cima for pressionada.

Lembre-se de adaptar o código para o seu projeto, substituindo os nomes das variáveis e funções pelos que você está usando.

Bons estudos!

Olá!

Essa foi a primeira queixa do meu sobrinho ao testar o jogo. Vim ao fórum para ver se mais alguém havia se incomodado com esse detalhe.

Particularmente, não me incomoda.

Mas a criança sentou o dedo na seta para cima e frustrou-se ao ver os pontos perdidos ao bater o ator no primeiro carro continuamente.

Obrigada por compartilhar uma solução!

;)

Boa tarde Lucas.

Muito obrigado pela solução, era exatamente o que eu queria, porém nao consegui aplicar no meu código, e nao sei onde estou errando.

Segue meu código abaixo. Poderia me explicar como inseri-lo no meu código, por favor? Pois já tentei de diversas formas e nao consegui. Dessa forma ele dá erro quando aperto seta para baixo e ainda assim, nao há o delay.

Obrigado desde já!

https://editor.p5js.org/LuizBelice/sketches/aMa_nuUaX

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