import java.awt.*; import java.awt.event.*; //弾丸クラス public class TimerAnimationBullet implements ActionListener { //元のアプレット TimerAnimation applet; int width,height; // int radius; //半径 int dx,dy; //移動距離 int px,py; //現在位置 Color color; // public TimerAnimationBullet(int w,int h,TimerAnimation app){ width=w; height=h; applet=app; //最初に乱数で決定 radius=TimerAnimation.getRandomInt(5,15); dx=TimerAnimation.getRandomInt(2,8); dy=TimerAnimation.getRandomInt(2,8); px=TimerAnimation.getRandomInt(radius,width-radius); py=TimerAnimation.getRandomInt(radius,height-radius); color=new Color(TimerAnimation.getRandomInt(0,255),TimerAnimation.getRandomInt(0,255),TimerAnimation.getRandomInt(0,255)); } //Timerクラスで、定期的に呼び出される public void actionPerformed(ActionEvent e) { //移動と跳ね返り px+=dx; if(pxwidth-radius){ dx=-Math.abs(dx); } // py+=dy; if(pyheight-radius){ dy=-Math.abs(dy); } //自分が移動する毎に元のアプレットを再描画 applet.repaint(); } //パネルから描画で呼び出される public void paintBullet(Graphics g){ g.setColor(color); g.fillOval(px-radius,py-radius,radius*2,radius*2); } }