Suporte no desenvolvimento de jogos


    [Java]Animando imagens com java: update VS Swing Timer

    avatar
    /_Lucas
    Novato
    Novato

    Mensagens : 19
    Créditos : 0

    [Java]Animando imagens com java: update VS Swing Timer  Empty [Java]Animando imagens com java: update VS Swing Timer

    Mensagem por /_Lucas em Dom Mar 17, 2019 11:08 pm

    Tipo: Tutorial
    Nível: Intermediário.
    Linguagem: java.
    Contato e mais informações:  https://lucasindiesh1p.wordpress.com/ 
    Mais tutorais sobre:  https://lucasindiesh1p.wordpress.com/2019/03/17/animacao-java-update-vs-swing-timer/


    Na animação em java, sobreescrever o update ou utilizar o Swing Timer?
    Ambos ( sobrescrever o update padrão do Swing ou usar o Swing Timer)não são tão bons se comparados ao uso do Utility Timer ou uso de Thread.
    Mas o Swing Timer leva vantagem para fazer animações em jogos, pois se for utilizar sobre o update, ou seja, somente sobrescrever o update, ficará mais difícil controlar o tempo da animação. O Swing Timer já disponibiliza um parâmetro ao instancia-lo, para dizer qual a velocidade da animação.
    Exemplo:

    timer = new Timer(DELAY, this);// aqui podemos controlar a velocidade da animação, através da variável DELAY.
    timer.start(); //O método actionPerformed() é automaticamente e repetidamente invocado pelo uso do timer.
    Meus projetos que utilizam das duas formas:
    Utilizando o update: Projeto ABatalha versão1
    Utilizando o Swing Timer: Projeto ABatalha versão2

    Imagens:
    [Java]Animando imagens com java: update VS Swing Timer  Vers1
    [Java]Animando imagens com java: update VS Swing Timer  Vers2
    Notas:
    Para utilizar o Swing Timer, será necessário sobreescrever o método ActionPerformed, isso significa que também terá que implementar a interface ActionListener na classe.
    ActionPerfomed é herdado da interface ActionListener, e o Swing Timer precisa que a classe implemente essa interface, pois o Swing Timer é um loop que chama repetidamente o método ActionPerfomed para fazer o loop.
     
     
    Referências:
    https://docs.oracle.com/javase/7/docs/api/javax/swing/Timer.html

    https://docs.oracle.com/javase/7/docs/api/java/awt/event/ActionListener.html
    http://zetcode.com

      Data/hora atual: Ter Abr 23, 2019 12:56 pm