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

📄 dot.java

📁 用JAVA写个一个烟花效果
💻 JAVA
字号:
package FireFlower;


import java.awt.Color;
import java.awt.Graphics;
import java.awt.Point;
import java.util.Vector;

//所有烟花式样的父类,方便以后添加烟花式样
public abstract  class Dot {

	int  x=30;//该点的横坐标
	int  y=30;//该点的竖坐标
	Color  col; //该点的颜色
    int   pace=30;//该点上升的速度
    int   size=6;//点的大小
final	Point   endPoint=new  Point();//记录该点完结的位置
    //记录该点的状态,就是是否是爆破状态,1是上升状态,2是爆炸状
	//态的初始化,3是爆炸状态,4是消失状态
	int  state=1;
	int    circle=1;
    LittleDot[]  ld=new LittleDot[200];

    int    WALLOP=20;  //设爆炸后每个点所受到的冲击力是10N
    int    GRAVITY=20;
	
	public  Dot(Color col,int endX,int endY){
		   circle=1;
		   state=1;
		   pace=25;
		   
	         this.x=endX;
			 this.y=FireFlower.SIZE_Y-80;
			 this.col=col;
			 endPoint.x=endX;
			 endPoint.y=endY;
			 state=1;
	 
	}
	
	public void rise(){
	      //处理上升的的情况
	      y-=pace;
	      x=x;
	      
	      if(y<=endPoint.y)y=endPoint.y-2;
	      if(x<=endPoint.x)x=endPoint.x-2;
	      
	   }
	    
//	判断是否爆炸
	public     boolean  whetherBlast(){
		 //判断是否爆炸
		   
	       if(y<=endPoint.y&&x<=endPoint.x){
			//   state=2;
			   return true;}

		   else return false;
		
	}
		   
//	初始化爆炸的情况
	public abstract  LittleDot[] initBlast();
	
//	处理爆炸的情况
	 public  abstract  LittleDot[]   blast();
		   
	 public    void  myPaint(Graphics g,Vector lList){
		     if(state==1){
			    g.setColor(col);
				g.fillOval(x,y,size,size);
				g.fillRect(x+2,y+6,2,4);
				     }

				else   if(state==2){
					
				    g.setColor(col);
				    
					g.fillOval(x,y,size,size);
				
		        	LittleDot[] ld2=initBlast();
		        	ld=new  LittleDot[ld2.length];
		         	ld=ld2;
		 
		  		     for(int i=0;i<ld.length/4;i++){
		        	      g.setColor(ld[i].col);
				    	  g.fillOval(ld[i].x,ld[i].y,2,2);
				         } 
		  		
				   state=3;
				}

		        else  if(state==3){
		     	
					circle++;
				//System.out.println(dot.circle);
					
					 this.ld=blast();
				    
		           for(int i=0;i<ld.length;i++){
		        	   
				      g.setColor(ld[i].col);
					  g.fillOval(ld[i].x,ld[i].y,2,2);
				   } //for
					
				}

				else if(state==4){
					synchronized(lList){
				   lList.remove(this);}
				}
		
	 } 
	 
	 public  String  toString(){
		 return    "该点现在得位置是x="+x+",y="+y+"," +
		 		    "爆炸点是x="+endPoint.x+",y="+endPoint.y+"颜色是"+col;
		 
	 }
}

⌨️ 快捷键说明

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