Re: RES: [java-list] Animação em Java

2001-05-03 Por tôpico Edward Roe


Oi, 

Na própria documentação (coisa rara) tem um exemplo de como usar a 
classe MediaTracker e em:
 
http://java.sun.com/docs/books/tutorial/uiswing/painting/improvingImageA
nim.html

> Valeu, mas tu tens algum exemplo de como eu uso essa classe ???

[]'s

-- 
Edward Roe

-- LISTA SOUJAVA  
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-




RES: [java-list] Animação em Java

2001-05-03 Por tôpico Sergio - InfoSaúde RS

Eu tinha sobrescrito o update e chamava somente o paint dentro dele, mas não
deu muito certo, pq será ??

-Mensagem original-
De: Sergio Oliveira Jr. [mailto:[EMAIL PROTECTED]]
Enviada em: quinta-feira, 3 de maio de 2001 12:40
Para: [EMAIL PROTECTED]
Assunto: Re: [java-list] Animação em Java



O problema aqui é o seguinte:

O método void update(Graphics g) é implementado da seguinte maneira:

-> Primeiro LIMPA A TELA
-> Depois chama paint(g);

o que é horrível para animações. Numa animação você só quer redesenhar a 
área que está mudando e não todo o resto.

De um override no metodo update para ele não apagar a tela:

void update(Graphics g) { paint(g); }

e veja se as coisas melhoram.

No meu caso ajudou bastante.

[]'s

Sergio




>From: "Eduardo de S. Bernardino" <[EMAIL PROTECTED]>
>Reply-To: [EMAIL PROTECTED]
>To: <[EMAIL PROTECTED]>
>Subject: Re: [java-list] Animação em Java
>Date: Thu, 3 May 2001 12:09:40 -0300
>
>Para applets com AWT funciona que é uma beleza o método que você
>especificou.
>Só não sei se este exemplo que você mostra funciona. No Swing não sei se
>funciona, mas tente sincronizar os métodos com o synchronized, as vezes
>funciona.
>
>Eduardo
>
>- Original Message -
>From: "Sergio - InfoSaúde RS" <[EMAIL PROTECTED]>
>To: <[EMAIL PROTECTED]>
>Sent: Thursday, May 03, 2001 11:59 AM
>Subject: [java-list] Animação em Java
>
>
>Bom dia !!
>
>Gostaria de saber se alguém de vcs já implementou algum tipo de
>animação em java e se conseguiu resolver aquele problema da tremedeira da
>tela, por causa dos sucessivos repaint de tela. Tentei implementar uma
>técnica que ví em um livro mas não tive muito sucesso. Eles chamavam a
>técnica de buferrização dupla, que consiste nada mais nada menos que criar
>uma outra instância de Graphics e pintar todos os objetos nela e depois
>simplesmente pintar ao contexto da tua aplicação aquela imagem criada em
>background. A idéia me pareceu ótima, só que quando implementei não
>funcionou, o programa compila normalmente só que na hora da execução ele dá
>erro de null pointer assingment.  Alguém sabe o que pode ser ???  Tem a ver
>com o exemplo ser implementado utilizando awt e extendendo applet, sendo 
>que
>eu estou usando swing e extendendo JFrame ???
>
>Segue abaixo as partes relevantes do código da minha classe:
>
>import java.awt.*;
>import java.util.*;
>import java.awt.event.*;
>import javax.swing.*;
>
>class RaceThread extends JFrame implements ActionListener{
>
>JButton Inicia,Suspende,Para;
>JPanel Baixo, Placar;
>Bixo lebre, lebre2, lebre3, tart, tart2, tart3;
>
>private Bixo Lugares [];
>private int Posi [];
>Image offscreenImg;
>Graphics offscreen;
>private Image ImgBg =
>Toolkit.getDefaultToolkit().getImage("pista.jpg");
>
>public RaceThread(){
>
>super("Race Thread");
>
>offscreenImg = createImage(size().width, size().height);
>offscreen = offscreenImg.getGraphics();//  a máquina
>virtual acusa o erro nessa linha
>
>}
>
>
>public void paint(Graphics g){
>super.paint(g);
>int pos = 100;
>for(int i=0;i<15;i++){
>offscreen.drawImage(ImgBg,pos,22,this);// No
>método paint, todos os desenhos são feitos naquela instância de Graphics
>criada na contrutora
>pos+=54;
>}
>
>lebre.paint(offscreen);
>lebre2.paint(offscreen);
>lebre3.paint(offscreen);
>
>tart.paint(offscreen);
>tart2.paint(offscreen);
>tart3.paint(offscreen);
>
>g.drawImage(offscreenImg,0,0,this);   // Depois que tudo foi
>pintado aí sim chama-se o paint para exibir a tela criada
>
>
>}
>
>}
>
>-- LISTA SOUJAVA 
>http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
>dúvidas mais comuns: http://www.soujava.org.br/faq.htm
>regras da lista: http://www.soujava.org.br/regras.htm
>para sair da lista: envie email para [EMAIL PROTECTED]
>-
>
>
>
>
>-- LISTA SOUJAVA 
>http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
>dúvidas mais comuns: http://www.soujava.org.br/faq.htm
>regras da lista: http://www.soujava.org.br/regras.htm
>para sair da lista: envie email para [EMAIL PROTECTED]
>-
>

_
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.


-- LISTA SOUJAVA  
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-

-- LISTA SOUJAVA 
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujav

RES: [java-list] Animação em Java

2001-05-03 Por tôpico Sergio - InfoSaúde RS

Valeu, mas tu tens algum exemplo de como eu uso essa classe ???

-Mensagem original-
De: Edward Roe [mailto:[EMAIL PROTECTED]]
Enviada em: quinta-feira, 3 de maio de 2001 11:49
Para: [EMAIL PROTECTED]
Assunto: Re: [java-list] Animação em Java



Oi,

 Não é boa idéia misturar awt e swing..
  Se voce esta usando threads para controlar sua animação, voce pode 
fazer uso da classe java.awt.MediaTracker

[]'s

-- 
Edward Roe

-- LISTA SOUJAVA  
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-

-- LISTA SOUJAVA 
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-