Aldeia RPG

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Suporte ao desenvolvimento de jogos


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

    CDZ
    CDZ
    Novato
    Novato


    Mensagens : 22
    Créditos : 0

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

    Mensagem por CDZ 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: Sex Abr 26, 2024 9:16 am