⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 resourcegroup.java

📁 这是自己设计的一款java泡泡游戏。 这是自己设计的一款java泡泡游戏。这是自己设计的一款java泡泡游戏
💻 JAVA
字号:
package pp.actor;

import java.applet.*;
import java.awt.*;
import java.io.*;
import java.net.*;
import java.util.*;
import like.actor2D.*;
import like.graphics.*;


/****************************************************
 *加载地表,障碍物,道具图片.
 *并提供给MAP,Fraise(障碍物)类,道具类使用
 *调用时只需要
 *ResourceGroup rg = new ResourceGroup();
 *rg.init(Component component);
 *Image image = rg.getImage(1,2);//1是ImageType,2是ImageIndex
 *;//ImageType(1-地表,2-障碍,3-道具)
 ****************************************************/
public class ResourceGroup 
{
	public final static int Audio_login  = 0;
	public final static int Audio_dead   = 1;
	public final static int Audio_getProperty = 2;
	public final static int Audio_putPP  = 3;
	public final static int Audio_win    = 4;
	public final static int Audio_loss   = 5;
	public final static int Audio_star   = 6;
	public final static int Audio_backGround  = 7;
	
	public int tileNumbers;//地表数,访问索引tiles[0..tileNumbers-1]
	public int fraiseNumbers;//障碍物数,访问索引fraises[0..fraiseNumbers-1]
	public int proNumbers;//道具数,访问索引proImages[0..proNumbers-1]
	 
	//地表
	String []       tiles = new String[20];
	Image  []  tileImages = new Image[20];
	 
	//障碍物
	public int    []     canMove = new int [20];
	public int    []  canDestroy = new int [20];
	int    []  haveShadow = new int [20];
	int    []  needAnim   = new int [20];
	int    []  frameWidth = new int [20];
	int    []  animWait   = new int [20];
	String []     fraises = new String[20];
	Image  []fraiseImages = new Image[20];
	Image  []animationStrip = new Image[20];
	
	//道具
	String []  properties = new String[20];
	Image  []  proImages  = new Image[20];
	
	//阴影和背景
	Image shadow;
	Image playerShadow;
	Image proShadow;
	Image backGround;
	
	//公共声音
	AudioClip [] audios = new AudioClip[8];

	
	public ResourceGroup(String file)
	{
		Scanner scanner = null;
		try
		{
			scanner = new Scanner(new File(file));
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
		//地表
		tileNumbers = scanner.nextInt();
		//System.out.println(tileNumbers);
		scanner.nextLine();
		for(int i=1;i<=tileNumbers;i++)
		{
			scanner.nextInt();
			tiles[i] = scanner.next();
			//System.out.println(tiles[i]);
		}
		//障碍物
		fraiseNumbers = scanner.nextInt();
		scanner.nextLine();
		//System.out.println(fraiseNumbers);
		for(int i=1;i<=fraiseNumbers;i++)
		{
			scanner.nextInt();
			canMove[i]    = scanner.nextInt();
			canDestroy[i] = scanner.nextInt();
			haveShadow[i] = scanner.nextInt();
			needAnim[i] = scanner.nextInt();
			if(needAnim[i]==1) 
			{
				frameWidth[i] = scanner.nextInt();
				if(this.canDestroy[i]==0)
					animWait[i] = scanner.nextInt();
			}
			fraises[i] = scanner.next();
		}
		
		//加载声音
		try
		{
			scanner = new Scanner(new File(file.substring(0,file.length()-4)+"_au.ini"));
			for(int i=0;i<=7;i++)
			{
				scanner.next();
				audios[i] = Applet.newAudioClip(new URL("file","localhost",scanner.next()));
			}
		}
		catch(Exception e){}
	}
	
	public void init(Component component)
	{
		ImageLoader load;
		for(int i=1;i<=tileNumbers;i++)
		{
			load = new ImageLoader(component,tiles[i],true);
			tileImages[i] = load.getImage();
		}
		for(int i=1;i<=fraiseNumbers;i++)
		{
			load = new ImageLoader(component,fraises[i],true);
			if(this.needAnim[i]==1)
			{
				animationStrip[i] = load.getImage();
				fraiseImages[i] = load.extractCell(0,0,frameWidth[i],animationStrip[i].getHeight(component));
				
			}
			else 
			{
				fraiseImages[i] = load.getImage();
			}
				
		}
		for(int i=1;i<=this.proNumbers;i++)
		{
			load = new ImageLoader(component,properties[i],true);
			proImages[i] = load.getImage();
		}
		
		//道具
		load = new ImageLoader(component,"res\\common\\pro.gif",true);
		proNumbers = 4;
		this.proShadow = load.extractCell(0,0,36,54);
		for(int i=1;i<=proNumbers;i++)
		{
			proImages[i] = load.extractCell(36*i,0,36,54);
		}
		load = new ImageLoader(component,"res\\common\\playerShadow.gif",true);
		this.playerShadow = load.getImage();
		//阴影和背景
		load = new ImageLoader(component,"res\\common\\shadow.gif",true);
		this.shadow = load.getImage();
		load = new ImageLoader(component,"res\\common\\backGround.gif",true);
		this.backGround = load.getImage();
	}
	
	//是否需要画阴影
	public boolean needPaintShadow(int i)
	{
		return this.haveShadow[i]==1? true:false;
	}
	
	//类型1-地表,2-障碍,3-道具
	public Image getImage(int type,int index)
	{
		if(type==1)
		{
			if(index>0 && index<=tileNumbers)
			{
				return tileImages[index];
			}
			//System.out.println("请求图片不存在,返回null"+type+","+index);
			return null;
		}
		else if(type==2)
		{
			if(index>0 && index<=fraiseNumbers)
			{
				return fraiseImages[index];
			}
			//System.out.println("请求图片不存在,返回null"+type+","+index);
			return null;	
		}
		else
		{
			if(index>0 && index<=proNumbers)
			{
				return proImages[index];
			}
			//System.out.println("请求图片不存在,返回null"+type+","+index);
			return null;
		}
	}
	
	public Image getAnimationStrip(int index)
	{
		return animationStrip[index];
	}
	
	public Image getShadow()
	{
		return this.shadow;
	}
	
	public Image getPlayerShadow()
	{
		return this.playerShadow;
	}
	
	public Image getProShadow()
	{
		return this.proShadow;
	}
	
	public Image getBackGround()
	{
		return this.backGround;
	}
	
	//得到声音
	public AudioClip getAudio(int Audio_index) {return this.audios[Audio_index];}
}

/*class Test extends Frame
{
	ResourceGroup fg;
	public Test()
	{
		super("测试");
		fg = new ResourceGroup("configures\\xq.ini");
		this.setSize(400,400);
		this.setVisible(true);
		fg.init(this);
	}
	
	public void paint(Graphics g)
	{
		g.drawImage(fg.getBackGround(),10,10,this);
		g.drawImage(fg.getShadow(),50,50,this);
	}
	public static void main(String [] args)
	{
		new Test();
	}
}*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -