Objeto se mover na tela de forma aleatória

01/09/2020

0

Olá!

Estou tentando fazer um cálculo para gerar valores que façam um objeto se mover de forma aleatória para esquerda ou direita. E também durante um tempo aleatório dentre um valor minimo e máximo.

Entretanto, após muitas tentativas, simplesmente não consigo =/
O objeto fica sempre muito rápido ou muito bugado(indo pra esquerda e pra direita muito rápido, ao ponto de mal sair do lugar).
https://www.youtube.com/watch?v=5io3nt1qOh4

Aqui está o meu código:
OBS: O tempo em questão é igual a frames, ou seja, 60 frames = 1 segundo.
https://youtu.be/5io3nt1qOh4
function atualizaIcone(){
    const minimoX = 100;
    const maximoX = 400;
    const duracaoMaxima = 60 * 5; // 5 segundos
    const duracaoMinima = 60 * 2; // 2 segundos
    if(!duracao || duracao <= 0) {
        let direcao = Math.floor(2 * Math.random());// Se direção 0, vai para esquerda. || Se direção 1, vai para a direita.
        var duracao =  Math.floor(duracaoMaxima* Math.random()) + duracaoMinima; // Gera um número aleatório dentre os números minimoX e máximoX.
        if(direcao){  
            // se move para direita
            while(duracao--){
                this.hitmarkSprite.x++;
                if(this.hitmarkSprite.x >= maximoX) duracao = 0;
            }
        }else{
            // se move para esquerda
            while(duracao--){
                this.hitmarkSprite.x--;
                if(this.hitmarkSprite.x <= minimoX) duracao = 0;
            }
        }
    }
};


Eu gostaria que esse ícone se movesse linearmente para esquerda ou direita.
Eliaquim Nascimento

Eliaquim Nascimento

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar