Duvida em animação super simples

2 respostas
M

Pessoal, essa é uma animação de uma bolinha descendo e indo pra direita em um JFrame… Por curiosidade, quis trocar a cor da bolinha quando ela estivesse na metade da descida… mas nao funcionou… a bolinha continua da mesma cor… alguem poderia dar uma olhadinha no que eu estou errando?
vai aí o código:

package cap12;
import javax.swing.*;

import java.awt.*;

public class SimpleAnimation {

int x=70;

int y=70;
public static void main(String[] xuxu){
	SimpleAnimation gui = new SimpleAnimation();
	gui.go();		
}

public void go(){
	JFrame frame = new JFrame();
	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	
	MyDrawPanel drawpanel = new MyDrawPanel();
	
	frame.getContentPane().add(drawpanel);
	
	frame.setSize(300,300);
	frame.setVisible(true);
	
	for(int i=0; i<130;i++){
		x++;
		y++;
		drawpanel.repaint();
		
		try{
			Thread.sleep(50);
		}catch(Exception ex){}
	}
}

class MyDrawPanel extends JPanel{
	public void paintComponent(Graphics g){
		
		g.setColor(Color.white);
		g.fillRect(0, 0, this.getWidth(), this.getHeight());
		
                 //aqui começa minha modificacao:
		if(x<=65){
			g.setColor(Color.green);
			g.fillOval(x, y, 40, 40);
		}else{
		
		g.setColor(Color.red);
		g.fillOval(x, y, 40, 40);}
		
		
	}
	
}

}

2 Respostas

kaoe

Se você começou seu programa com

int x=70;
int y=70;

Ai você faz o for com

for(int i=0; i<130;i++){
  x++;
  y++;

Portanto 71 72 73 etc

Que hora do programa você pretende que ocorra?

if(x<=65){

Sempre sua bolinha vai estar Vermelha

M

Com certeza Kaoe, ridículo o erro. nao entendo como nao tinha visto antes.
botei o valor como 100 e foi tudo como esperado.

Brigadão!

Criado 5 de julho de 2007
Ultima resposta 6 de jul. de 2007
Respostas 2
Participantes 2