/*
    爆弾アニメーション
*/
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Image;
import java.applet.AudioClip;

public class xBomb extends Applet implements Runnable {

    Thread xthKeeper;
    Image ximgDokiDoki01, ximgDokiDoki02, ximgDokan;

    int ximgDokiNo;
    int xdokiDokiTime;
    boolean xbomb;
    
    AudioClip xaClip01 = null;
    AudioClip xaClip02 = null;
    
    public void init(){
        xaClip01 = getAudioClip( getCodeBase(),  "sounddoki.au");
        xaClip02 = getAudioClip( getCodeBase(),  "sounddokan.au");
        
        ximgDokiDoki01       = getImage(getCodeBase( ), "dokidoki01.gif");
        ximgDokiDoki02       = getImage(getCodeBase( ), "dokidoki02.gif");
        ximgDokan            = getImage(getCodeBase( ), "dokan.gif");
    }

    public void start(){
        xaClip01.loop();
        xthKeeper = new Thread(this);     // スレッド生成
        xthKeeper.start();                // スレッド開始(ready状態へ)
        xbomb = false;
        xdokiDokiTime = 0;
        ximgDokiNo = 1;
    }

    // Runnable対象部分　スレッド実行の時間管理
    public void run(){
        while(xthKeeper != null){                // 実行を継続する条件
            try {
                Thread.sleep(300);
            }
            catch(InterruptedException xe){
            }
            xdokiDokiTime = xdokiDokiTime + 1;
            repaint();              // 繰返し仕事(画面書き換え)
        }
    }

    // 画面に表示(繰返し仕事)
    public void paint(Graphics xgPen){
        if ((xdokiDokiTime > 10) && !(xbomb)){
            xthKeeper = null;
            xbomb = true;
            xaClip01.stop();
            xaClip02.play();
        }
        if (xbomb) {
            xgPen.drawImage(ximgDokan,0,0,this);
        }else{
            if (ximgDokiNo == 1){
                xgPen.drawImage(ximgDokiDoki01,0,0,this);
                ximgDokiNo = 2;
            }else{
                xgPen.drawImage(ximgDokiDoki02,0,0,this);
                ximgDokiNo = 1;
            }
        }
        // xgPen.drawString(""+xdokiDokiTime, 100,100); // テスト用
    }

    public void stop(){
        xthKeeper = null;
    }
}

