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

📄 mypaopao.java

📁 源码!希望大家能够喜欢!还有一些小错误!忘大家指出!
💻 JAVA
字号:
/**Author:GaoKun
 *Date:	2005-3-9
 *Title: MyPaoPao
 */
 
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class MyPaoPao extends JLabel implements Runnable
{
	int powerPaoPao=1;					//泡泡的威力
	
	Man man;
	Image bombWave;
	ImageIcon icoPaoPao;
	Thread tPaoPao;
	PaoPaoTang ppt;						//定义一个主类的引用
	int delay=0;
	
	MyBox box[][]=new MyBox[14][16];
	MyPanel pnl[][]=new MyPanel[14][16];
	
	static MyPaoPao pp[][]=new MyPaoPao[14][16];
	
	
//泡泡对象的构造方法	
	public MyPaoPao(PaoPaoTang tempPPT)	
	{
		ppt=tempPPT;
							
		icoPaoPao=new ImageIcon("PaoPao.gif");
		this.setIcon(icoPaoPao);	
	}
	public void setMan(Man temp)
	{
		man=temp;
	}
	
//将泡泡对象传过来	
	public void setPaoPao(MyPaoPao temp,int tempRow,int tempCol)
	{
		pp[tempRow][tempCol]=temp;
	}
	
	public void startUp()			//启动泡泡的方法
	{
		tPaoPao=new Thread(this);
		tPaoPao.start();
	}
	
	public void run()
	{
		while(delay<=5000)
		{
			try
			{
				Thread.sleep(10);
				delay+=10;
			}
			catch(Exception e)
			{
			}
		}
		this.setIcon(new ImageIcon("paopaobombed.jpg"));
		this.afterPaoPaoBomb();	
	}
//传递泡泡的威力	
	public void setPaoPaoValue(int power)
	{
		powerPaoPao=power;
	}
	public void setBox(MyBox temp[][])
	{
		for(int i=0;i<14;i++)
		{
			for(int j=0;j<16;j++)
			{
				box[i][j]=temp[i][j];
			}
		}
	}
	
	public void setMyPanel(MyPanel temp[][])
	{
		for(int i=0;i<14;i++)
		{
			for(int j=0;j<16;j++)
			{
				pnl[i][j]=temp[i][j];
			}
		}
	}
	
	
//********************************	
//擦除泡泡波的方法
	private void eraserPaoPaoWaveUp(int temp,int r,int c)
	{
		for(int i=1;i<temp;i++)
		{
			if(box[r-i][c].haveEat==0)
				continue;
			box[r-i][c].setVisible(false);	
			pnl[r-i][c].setVisible(true);
			pnl[r-i][c].repaint();
		}
	}
	
	private void eraserPaoPaoWaveDown(int temp,int r,int c)
	{
		for(int i=1;i<temp;i++)
		{
			if(box[r+i][c].haveEat==0)
				continue;
				
			box[r+i][c].setVisible(false);	
			pnl[r+i][c].setVisible(true);
			pnl[r+i][c].repaint();
		}
	}
	
	private void eraserPaoPaoWaveLeft(int temp,int r,int c)
	{
		for(int i=1;i<temp;i++)
		{
			if(box[r][c-i].haveEat==0)
				continue;
				
			box[r][c-i].setVisible(false);	
			pnl[r][c-i].setVisible(true);
			pnl[r][c-i].repaint();
		}
	}
	
	private void eraserPaoPaoWaveRight(int temp,int r,int c)
	{
		for(int i=1;i<temp;i++)
		{
			if(box[r][c+i].haveEat==0)
				continue;
				
			box[r][c+i].setVisible(false);	
			pnl[r][c+i].setVisible(true);
			pnl[r][c+i].repaint();
		}
	}
	
//*******************************************	
	void afterPaoPaoBomb()
	{
		int row=(this.getLocation().y+20)/40;
		int col=(this.getLocation().x+20)/40;
		
		int up=1;
		int down=1;
		int left=1;
		int right=1;
		
//up-向上搜寻
		for(up=1;up<=powerPaoPao;up++)
		{
			if((row-up)<0)
				break;
				
			if(pnl[row-up][col].haveMan==true)
			{
				man.setIcon(new ImageIcon("dead.gif"));
				man.alive=false;
			}	
			else if(pnl[row-up][col].haveBomb==true)
			{
				pp[row-up][col].delay=5001;
				//break;
			}
			else if(box[row-up][col].boxIndex==0||box[row-up][col].isRoad==true)
			{
				if(box[row-up][col].boxIndex==0||box[row-up][col].boxIndex==2)
				{
					pnl[row-up][col].setVisible(false);
					box[row-up][col].setIcon(new ImageIcon("wavecol.jpg"));
					box[row-up][col].setVisible(true);
//*************************
					//lagTime();
//					box[row-up][col].setVisible(false);
//					
//					pnl[row-up][col].setVisible(true);
//					pnl[row-up][col].repaint();
				}
				else
				{
					pnl[row-up][col].setVisible(false);
					
					Icon tempIco=box[row-up][col].getIcon();
					box[row-up][col].setIcon(new ImageIcon("wavecol.jpg"));
					box[row-up][col].setVisible(true);
					box[row-up][col].setIcon(tempIco);
				}	
				
					
			}
			else if(box[row-up][col].boxIndex==1)
			{
				box[row-up][col].boxBombed();
				break;
			}
			else if(box[row-up][col].boxIndex==2)
			{
				box[row-up][col].isRoad=true;
				box[row-up][col].setVisible(false);
				pnl[row-up][col].setVisible(true);
				pnl[row-up][col].repaint();
				break;
			}
			else if((box[row-up][col].boxIndex==3)||(box[row-up][col].boxIndex==4)||(box[row-up][col].boxIndex==5))
			{
				box[row-up][col].boxBombed();
				break;
			}
			
		}
		
//down-向下搜寻
		for(down=1;down<=powerPaoPao;down++)
		{
			if((row+down)>13)
				break;
				
			if(pnl[row+down][col].haveMan==true)
			{
				man.setIcon(new ImageIcon("dead.gif"));
				man.alive=false;
			}
			else if(pnl[row+down][col].haveBomb==true)
			{
				pp[row+down][col].delay=5001;
				//break;
			}
			else if(box[row+down][col].boxIndex==0||box[row+down][col].isRoad==true)
			{
				if(box[row+down][col].boxIndex==0||box[row+down][col].boxIndex==2)
				{
					pnl[row+down][col].setVisible(false);
					box[row+down][col].setIcon(new ImageIcon("wavecol.jpg"));
					box[row+down][col].setVisible(true);
//*************************
					//lagTime();
//					box[row+down][col].setVisible(false);
//					pnl[row+down][col].setVisible(true);
//					pnl[row+down][col].repaint();
				}
				else
				{
					pnl[row+down][col].setVisible(false);
					
					Icon tempIco=box[row+down][col].getIcon();
					box[row+down][col].setIcon(new ImageIcon("wavecol.jpg"));
					box[row+down][col].setVisible(true);
					box[row+down][col].setIcon(tempIco);
				}
			}
			else if(box[row+down][col].boxIndex==1)
			{
				box[row+down][col].boxBombed();
				break;
			}
			else if(box[row+down][col].boxIndex==2)
			{
				box[row+down][col].isRoad=true;
				box[row+down][col].setVisible(false);
				pnl[row+down][col].setVisible(true);
				pnl[row+down][col].repaint();
				break;
			}
			else if(box[row+down][col].boxIndex==3||box[row+down][col].boxIndex==4||box[row+down][col].boxIndex==5)
			{
				box[row+down][col].boxBombed();
				break;
			}
			
		}
		
//left-向左搜寻
		for(left=1;left<=powerPaoPao;left++)
		{
			if((col-left)<0)
				break;
			
			if(pnl[row][col-left].haveMan==true)
			{
				man.setIcon(new ImageIcon("dead.gif"));
				man.alive=false;
			}
			else if(pnl[row][col-left].haveBomb==true)
			{
				pp[row][col-left].delay=5001;
				//break;
			}
			else if(box[row][col-left].boxIndex==0||box[row][col-left].isRoad==true)
			{				
				if(box[row][col-left].boxIndex==0||box[row][col-left].boxIndex==2)
				{
					pnl[row][col-left].setVisible(false);
					box[row][col-left].setIcon(new ImageIcon("waverow.jpg"));
					box[row][col-left].setVisible(true);
//*************************
					//lagTime();
//					box[row][col-left].setVisible(false);
//					pnl[row][col-left].setVisible(true);
//					pnl[row][col-left].repaint();
				}
				else
				{
					pnl[row][col-left].setVisible(false);
					
					Icon tempIco=box[row][col-left].getIcon();
					box[row][col-left].setIcon(new ImageIcon("wavecol.jpg"));
					box[row][col-left].setVisible(true);
					box[row][col-left].setIcon(tempIco);
				}

			}
			else if(box[row][col-left].boxIndex==1)
			{
				box[row][col-left].boxBombed();
				break;
			}
			else if(box[row][col-left].boxIndex==2)
			{
				box[row][col-left].isRoad=true;
				box[row][col-left].setVisible(false);
				
				pnl[row][col-left].setVisible(true);
				pnl[row][col-left].repaint();
				break;
			}
			else if(box[row][col-left].boxIndex==3||box[row][col-left].boxIndex==4||box[row][col-left].boxIndex==5)
			{
				box[row][col-left].boxBombed();
				break;
			}
			
		}
		
//right-向右搜寻
		for(right=1;right<=powerPaoPao;right++)
		{
			if((col+right)>15)
				break;
			
			if(pnl[row][col+right].haveMan==true)
			{
				man.setIcon(new ImageIcon("dead.gif"));
				man.alive=false;
			}
			else if(pnl[row][col+right].haveBomb==true)
			{
				pp[row][col+right].delay=5001;
				//break;
			}
			else if(box[row][col+right].boxIndex==0||box[row][col+right].isRoad==true)
			{
				if(box[row][col+right].boxIndex==0||box[row][col+right].boxIndex==2)
				{
					pnl[row][col+right].setVisible(false);
					box[row][col+right].setIcon(new ImageIcon("waverow.jpg"));
					box[row][col+right].setVisible(true);
//*************************
					//lagTime();
//					box[row][col+right].setVisible(false);
//					pnl[row][col+right].setVisible(true);
//					pnl[row][col+right].repaint();
				}
				else
				{
					pnl[row][col+right].setVisible(false);
					
					Icon tempIco=box[row][col+right].getIcon();
					box[row][col+right].setIcon(new ImageIcon("wavecol.jpg"));
					box[row][col+right].setVisible(true);
					box[row][col+right].setIcon(tempIco);
				}
			}
			else if(box[row][col+right].boxIndex==1)
			{
				box[row][col+right].boxBombed();
				break;
			}
			else if(box[row][col+right].boxIndex==2)
			{
				box[row][col+right].isRoad=true;
				box[row][col+right].setVisible(false);
				pnl[row][col+right].setVisible(true);
				pnl[row][col+right].repaint();
				break;
			}
			else if(box[row][col+right].boxIndex==3||box[row][col+right].boxIndex==4||box[row][col+right].boxIndex==5)
			{
				box[row][col+right].boxBombed();
				break;
			}
		}
		
		
		try
		{
			Thread.sleep(350);
		}
		catch(Exception e)
		{}

//将释放出来的炸弹波消掉		
		if(up>1)
		{
			
			eraserPaoPaoWaveUp(up,row,col);
		}
		if(down>1)
		{
			
			eraserPaoPaoWaveDown(down,row,col);
		}
		if(left>1)
		{
			
			eraserPaoPaoWaveLeft(left,row,col);
		}
		if(right>1)
		{
			
			eraserPaoPaoWaveRight(right,row,col);
		}
		
//将中央的泡泡还原
		man.number++;		//将可以放的泡泡数还原
		pnl[row][col].haveBomb=false;
		this.setVisible(false);
		ppt.remove(this);
		pnl[row][col].setVisible(true);
		pnl[row][col].repaint();
	}
	
}

⌨️ 快捷键说明

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