У меня есть класс, который должен имитировать анимацию фейерверка с использованием paintComponent и repaint (). Проблема, которую я обнаружил, заключается в том, что «Фейерверк» заново инициализируется.
каждый раз, когда метод вызывается, так что поле projectileTime фейерверка каждый раз сбрасывается в ноль (как указано в конструкторе). Где подходящее место для создания объекта фейерверка, чтобы поле projectileTime увеличивалось соответствующим образом? (В этом классе или в другом классе)
см код:
public class FireworkComponent extends JComponent {
private static final long serialVersionUID = 6733926341300224321L;
private double time;
public FireworkComponent(){
time=0;
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.translate(0, this.getHeight());
Firework f= new Firework(this.getWidth()/2,0,73,90,Color.red,5);
f.addFirework(75,35,Color.BLUE,6);
f.addFirework(75, 155, Color.green, 6);
time+=.1;
Point point=f.addTime(.1);
g.fillOval(point.x, (-point.y),15,15);
try{
Thread.sleep(500);
System.out.println("sleep");
}
catch (InterruptedException e){
e.printStackTrace();
}
this.repaint();
}
}