sysMap.java

/************************************************************************
    sysMap.java         ƒVƒXƒeƒ€ƒ}ƒbƒv
    X“c_Šμ    •½¬‚P‚P”N‚UŒŽ‚P‚X“ϊ

**************************************************************************/

import java.awt.*;
import java.util.*;

import mapdata;
import cellbom2;

public class sysMap extends Canvas 
{
    private int gi_mapsizeX,gi_mapsizeY;        //‰ζ–Κ‚ΜƒTƒCƒY
    
    private MediaTracker g_Mediatrack;          //ƒƒfƒBƒAΔƒ‰ƒbƒJ[
    static final int gi_MT_ID = 1;
    
    private Image gI_Mapfont[];
    private final int gi_MapFontNo = 7;
    
    private mapdata g_MapData;
    private cellbom2 g_cellbom2;
    private int gi_Row;
    private int gi_Col;
    
    private int gi_Anime =0;
    
    private Image g_offscreanImage;             //ƒIƒtƒXƒNƒŠ[ƒ“
	private Graphics g_offscreanGC;
    
    private int baseboxs[][][];             //‰ζ–ʂ̏ξ•ρ
    private boolean gbReqRedraw;
    private final String gstr_Path = "../image";
    private final String gstr_fontname[] =
    {
        "/cell_1.GIF","/cell_2.GIF","/cell_3.gif",
        "/gan_1.GIF","/gan_2.GIF","/gan_3.gif",
        "/kenbikyo.JPG",
    };
    
    private final int gi_CELL_1 = 0;
    private final int gi_CELL_2 = 1;
    private final int gi_CELL_3 = 2;
    private final int gi_GAN_1 = 3;
    private final int gi_GAN_2 = 4;
    private final int gi_GAN_3 = 5;
    private final int gi_HAIKEI = 6;
    
    public sysMap(int sizex,int sizey)
    {
        gi_mapsizeX = sizex;
        gi_mapsizeY = sizey;
        
        g_MapData = new mapdata();
        g_cellbom2 = new cellbom2();
        gi_Row = g_MapData.getMapRow();
        gi_Col = g_MapData.getMapCol();
        
        g_offscreanGC = null;
        gI_Mapfont = new Image[gi_MapFontNo];
        for (int i = 0;i<gi_MapFontNo;i++)
        {
            gI_Mapfont[i] = null;
        }
        
        g_Mediatrack = new MediaTracker(this);
        gbReqRedraw = true;
        resize(gi_mapsizeX,gi_mapsizeY);
        
    
		//{{REGISTER_LISTENERS
		//}}
	}
    
    /**
     * ƒ}ƒbƒvƒtƒHƒ“ƒg‚ΜŽζ“Ύ
     */
    public int GetMapFontNo()
    {
        return gi_MapFontNo;
    }
    
    /**
     * ƒtƒ@ƒCƒ‹–ΌŽζ“Ύ
     */
    public String GetFileName(int i)
    {
        return gstr_Path + gstr_fontname[i];
    }

    /**
     * ƒ}ƒbƒvƒtƒHƒ“ƒg‚πƒZƒbƒg
     */
    public void SetMapFont(int i,Image font)
    {
        if (i<gi_MapFontNo)
        {
            gI_Mapfont[i] = font;
        }
    }
    
    /**
     * ƒƒfƒBƒAƒgƒ‰ƒbƒJ[‚Φ’Η‰Α
     */
    public void AddMediaImage(Image font)
    {
        g_Mediatrack.addImage(font,gi_MT_ID);
    }
    
    /**
     * ƒƒfƒBƒAƒgƒ‰ƒbƒJ[‚π“n‚·
     */
    public MediaTracker GetMediaTracker()
    {
        return g_Mediatrack;
    }
    
    /**
     *  ƒIƒtƒXƒNƒŠ[ƒ“‚ΙƒAƒNƒZƒX
     */
    public void SetOffCG(Image fint)
    {
        g_offscreanImage = fint;
        if (g_offscreanImage != null)
        {
            g_offscreanGC = g_offscreanImage.getGraphics();
        }
    }
    
    /**
	 * ..*.:'K™K':..*.:'K™K':..*.:'K™K':..*.:'K™K':..*.:'K™K':
	 * ‰ζ–Κ•`ŽΚƒƒ\ƒbƒh
	 *..*.:'K™K':..*.:'K™K':..*.:'K™K':..*.:'K™K':..*.:'K™K':
	 */
	public void paint(Graphics g)
	{
		//   System.out.println( "--- paint ---");
		if (g_Mediatrack.checkID(gi_MT_ID))
		{
			if (g_Mediatrack.isErrorID(gi_MT_ID))
			{
				g.drawString("LOADING ERROR!!",100,100);
				return;
			}
			
			if (g_offscreanImage != null)
			{
				DrawToOffscrean(g_offscreanGC);
				g.drawImage(g_offscreanImage,0,0,this);
			}
			else
			{
				DrawToOffscrean(g);
			}
			gi_Anime++;
			if (gi_Anime==3)
			{
			    gi_Anime = 0;
			}
			
			
		}
		else
		{
			g.drawString("NOW LOADING",100,100);
		}
	}
	
	/**
	 * ..*.:'K™K':..*.:'K™K':..*.:'K™K':..*.:'K™K':..*.:'K™K':
	 * ƒIƒtƒXƒN[ƒŠƒ“‚Φ•`ŽΚ
	 *..*.:'K™K':..*.:'K™K':..*.:'K™K':..*.:'K™K':..*.:'K™K':
	 */
	public void DrawToOffscrean(Graphics g)
	{
		HotInitialize();
	    for (int x=0;x<20;x++)
	    {
	        for (int y=0;y<20;y++)
	        {
	            drowBoll(g,x,y);
	        }
	    }
	   
	}
	
	/**
	 * ..*.:'K™K':..*..*.:'K™K':..*..*.:'K™K':..*..*.:'K™K':..*
	 * ‰ζ–ʂ̍XV
	 * ..*.:'K™K':..*..*.:'K™K':..*..*.:'K™K':..*..*.:'K™K':..*
	 */
	public void update(Graphics g)
	{
		paint(g);
	}
	
	/**
	 * ..*.:'K™K':..*..*.:'K™K':..*..*.:'K™K':..*..*.:'K™K':..*
	 * canvas‚Μƒ}ƒEƒXƒCƒxƒ“ƒg
	 * ..*.:'K™K':..*..*.:'K™K':..*..*.:'K™K':..*..*.:'K™K':..*
	 */
	public boolean mouseDown(Event ent,int x,int y)
	{
	    //System.out.println( "--- mouseDown ---");
	    baseboxs = g_cellbom2.cellbom2_MouseClicked(x,y,baseboxs);
	   
	   
	    return true;
	}
	
	/**
	 *..*.:'K™K':..*..*.:'K™K':..*..*.:'K™K':..*..*.:'K™K':..*
	 *@Δ•`ŽΚ
	 *..*.:'K™K':..*..*.:'K™K':..*..*.:'K™K':..*..*.:'K™K':..*
	 */
	public boolean IsReqRedrow()
	{
	    return gbReqRedraw;
	}
	
	/**
	 *..*.:'K™K':..*.:'K™K':..*.:'K™K':..*.:'K™K':..*.:'K™K':
	 * ƒ}ƒbƒvƒf[ƒ^‚©‚ηƒXƒe[ƒWƒf[ƒ^Žζ“Ύ
	 *..*.:'K™K':..*.:'K™K':..*.:'K™K':..*.:'K™K':..*.:'K™K':
	 */
	public int[][][] setstage(int i)
	{
	    //System.out.println( "--- setstage ---");
	    int stage[][][] = new int[3][20][20];
	    for (int x=0;x<20;x++)
	    {
	        for (int y=0;y<20;y++)
	        {
	            stage[0][x][y] = g_MapData.getMapChar(x,y,i)-48;
	        //     System.out.print( stage[0][x][y]);
	        }
	        //System.out.println("");
	    }
	    return stage;
	}
	
	/** 
	 * cellbom2.java‚©‚η‰ζ–ʏξ•ρ‚πŽΚ‚·
	 *
	 */
	public void setbackstage(int base[][][])
	{
	 //    System.out.println( "--- setbackstage ---");
	    baseboxs = new int[3][20][20];
	    baseboxs = base;
	}
	
	/**
	 *..*.:'K™K':..*.:'K™K':..*.:'K™K':..*.:'K™K':..*.:'K™K':
	 * ‰ζ–Κ‚Μƒf[ƒ^‚π“n‚·
	 *..*.:'K™K':..*.:'K™K':..*.:'K™K':..*.:'K™K':..*.:'K™K':
	 */
	public int[][][] passBase()
	{
	    return baseboxs;
	}
	
	/**
	 * ‰ζ–ʂ̏‰Šϊ‰»
	 *
	 */
	public void HotInitialize()
	{
	    // System.out.print( "--- HotInitialize ---");
	    g_offscreanGC.drawImage(gI_Mapfont[gi_HAIKEI],0,0,this);
	    gbReqRedraw = false;
	}
	
	/**
	 * ƒ{[ƒ‹‚Μ”»•Κ
	 *
	 */
	private void drowBoll(Graphics g,int x,int y)
	{
	  //    System.out.println( "--- drowBoll ---");
	    int masuX,masuY;
	    masuX = x*16+40;
	    masuY = y*16+40; 
	    if ( baseboxs[0][x][y]==1)
	    {
	        //System.out.println("aaaa");
	        switch (gi_Anime)
	        {
	            case 0:
	                g.drawImage(gI_Mapfont[gi_CELL_1],masuX,masuY,this);
	                break;
	            case 1:
	                g.drawImage(gI_Mapfont[gi_CELL_2],masuX,masuY,this);
	                break;
	            case 2:
	                g.drawImage(gI_Mapfont[gi_CELL_3],masuX,masuY,this);
	                break;
	            default:
	                g.drawImage(gI_Mapfont[gi_CELL_1],masuX,masuY,this);
	                break;
	        }
	    }
	    else if( baseboxs[0][x][y]==2)
	    {
	       // System.out.println("bbbb");
	        switch (gi_Anime)
	        {
	            case 0:
	                g.drawImage(gI_Mapfont[gi_GAN_1],masuX,masuY,this);
	                break;
	            case 1:
	                g.drawImage(gI_Mapfont[gi_GAN_2],masuX,masuY,this);
	                break;
	            case 2:
	                g.drawImage(gI_Mapfont[gi_GAN_3],masuX,masuY,this);
	                break;
	            default:
	                g.drawImage(gI_Mapfont[gi_GAN_1],masuX,masuY,this);
	                break;
	        }
	    }
	}
	    
	    

}

cellbom2.java mapdata.java ƒ‰ƒCƒtƒQ[ƒ€ –ί‚ι ƒgƒbƒv‚Φ