public class circleGame extends JApplet{
private boolean animationDone;
private ArrayList<Circle> circles = new ArrayList<Circle>();
public void init(){
createCircles(10);
new Thread(){
@Override
public void run(){
while(!animationDone){
updateAnimation();
repaint();
delayAnimation();
}
}
}.start();
}
public void createCircles(int amount){
for(int i=0; i<amount; ++i){
circles.add(new Circle());
}
}
public void delayAnimation(){
try {
Thread.sleep(30);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void updateAnimation(){
for(Circle circle: circles){
circle.x+= circle.deltaX/20.0;
circle.y+= circle.deltaY/20.0;
}
}
public void paint(Graphics g){
Graphics2D g2d = (Graphics2D)g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
for(Circle circle: circles){
g2d.setColor(circle.color);
int xPosition = (int) (circle.x-circle.radius);
int yPosition = (int) (circle.y-circle.radius);
int diameter = circle.radius*2;
g2d.fillOval(xPosition, yPosition,
diameter, diameter);
}
}
現在のコードのように、特定の量の円を作成し、ドラッグや色の末尾なしでアニメーション化できるようにしようとしています。円は、色をドラッグすることなく、JApplet を滑らかに移動する必要があります。