Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Há problemas em seguir assim?

Eu acabei indo por um caminho completamente diferente e gostaria de saber se há algum empecilho de ter seguido esse caminho.

html-------------------------------------------------

var sprite

    $(function(){

        sprite = createSprite('.sprite');

        setInterval(function(){
            sprite.nextFrame();
        },500);
    });

js-------------------------------------------------------

function createSprite(seletor){
    return {
        frameatual : 1,
        spritePlace: seletor,
        geraPrimeiroQuadro: $(seletor).addClass("frame"+1),
        nextFrame: function(){
            //pega o sprite no html
            let obj = $(this.spritePlace);

            //pega o frame atual do objeto sprite
            let frameatual = this.frameatual;

            //limpa class
            obj.attr('class', 'sprite');

            //reseta frames se chegou ao ultimo
            if(this.frameatual>9){

                this.frameatual=0;
            }else{
                //atualiza o sprite
                obj.addClass("frame"+frameatual);
            }

            //muda o indice do frame atual no objeto sprite
            this.frameatual++;

            //console.log("frameatual: "+ this.frameatual);
        }
    }
}

*alterei o nome de alguns campos após ver a aula/gabarito pois não estava claro(ex: usando x,y,z... segui trocando por seletor como no aula )

3 respostas

Oii Rodrigo!! Acredito que não ha problemas em seguir,se você entende com clareza as modificações que fez no código. Se tiver quaisquer poblema com o prosseguimento manda aqui no fórum.

abraços e bons estudos!

solução!

Oi Rodrigo, acho que não tem muito problema não. Funciona, então tá maio caminho andado! Acho que você pode melhorar um pouco seu código pra deixar ele mais flexível.

Um exemplo simples é o uso do Array no gabarito. Com ele, você evita esses números mágicos como 9, no meio do código.

Veja que isso também acaba fazendo você ter que somar 1 pra gerar o primeiro frame e depois setar o frame pra 0 se chegar no último.

Mas isso é coisa que você pega com o tempo.

Muito agradecido pelas respostas.