java烟花代码.docx
《java烟花代码.docx》由会员分享,可在线阅读,更多相关《java烟花代码.docx(9页珍藏版)》请在冰豆网上搜索。
java烟花代码
import
import
importjava.awt.*;
import
import
publicclasshuaextendsApplet
implementsRunnable
{
publichua()
{
m_mouseX=0;
m_mouseY=0;
m_sleepTime=5;
isError=false;
isInitialized=false;
rand=newRandom();
bits=10000;
bit_px=newdouble[bits];
bit_py=newdouble[bits];
bit_vx=newdouble[bits];
bit_vy=newdouble[bits];
bit_sx=newint[bits];
bit_sy=newint[bits];
bit_l=newint[bits];
bit_f=newint[bits];
bit_p=newint[bits];
bit_c=newint[bits];
ru=50;
rv=50;
}
publicvoidinit()
{
Strings=getParameter("para_bits");
if(s!
=null)
bits=Integer.parseInt(s);
s=getParameter("para_max");
if(s!
=null)
bit_max=Integer.parseInt(s);
s=getParameter("para_blendx");
if(s!
=null)
ru=Integer.parseInt(s);
s=getParameter("para_blendy");
if(s!
=null)
rv=Integer.parseInt(s);
s=getParameter("para_sound");
if(s!
=null)
bit_sound=Integer.parseInt(s);
m_nAppX=size().width;
m_nAppY=size().height;
m_centerX=m_nAppX/2;
m_centerY=m_nAppY/2;
m_mouseX=m_centerX;
m_mouseY=m_centerY;
resize(m_nAppX,m_nAppY);
pixls=m_nAppX*m_nAppY;
pixls2=pixls-m_nAppX*2;
pix0=newint[pixls];
offImage=newMemoryImageSource(m_nAppX,m_nAppY,pix0,0,m_nAppX);
offImage.setAnimated(true);
dbImg=createImage(offImage);
for(inti=0;ipix0[i]=0xff000000;
sound1=getAudioClip(getDocumentBase(),"firework.au");
sound2=getAudioClip(getDocumentBase(),"syu.au");
for(intj=0;jbit_f[j]=0;
isInitialized=true;
start();
}
publicvoidrun()
{
while(!
isInitialized)
try
{
Thread.sleep(200L);
}
catch(InterruptedExceptioninterruptedexception){}
do
{
for(intj=0;j{
intk=pix0[j];
intl=pix0[j+1];
inti1=pix0[j+m_nAppX];
intj1=pix0[j+m_nAppX+1];
inti=(k&0xff0000)>>16;
intk1=((((l&0xff0000)>>16)-i)*ru>>8)+i;
i=(k&0xff00)>>8;
intl1=((((l&0xff00)>>8)-i)*ru>>8)+i;
i=k&0xff;
inti2=(((l&0xff)-i)*ru>>8)+i;
i=(i1&0xff0000)>>16;
intj2=((((j1&0xff0000)>>16)-i)*ru>>8)+i;
i=(i1&0xff00)>>8;
intk2=((((j1&0xff00)>>8)-i)*ru>>8)+i;
i=i1&0xff;
intl2=(((j1&0xff)-i)*ru>>8)+i;
inti3=((j2-k1)*rv>>8)+k1;
intj3=((k2-l1)*rv>>8)+l1;
intk3=((l2-i2)*rv>>8)+i2;
pix0[j]=i3<<16|j3<<8|k3|0xff000000;
}
rend();
offImage.newPixels(0,0,m_nAppX,m_nAppY);
try
{
Thread.sleep(m_sleepTime);
}
catch(InterruptedExceptioninterruptedexception1){}
}while(true);
}
publicvoidupdate(Graphicsg)
{
paint(g);
}
publicvoidpaint(Graphicsg)
{
g.drawImage(dbImg,0,0,this);
}
publicvoidstart()
{
if(isError)
return;
isRunning=true;
if(runner==null)
{
runner=newThread(this);
runner.start();
}
}
publicvoidstop()
{
if(runner!
=null)
{
runner.stop();
runner=null;
}
}
publicbooleanmouseMove(Eventevent,inti,intj)
{
m_mouseX=i;
m_mouseY=j;
returntrue;
}
publicbooleanmouseDown(Eventevent,inti,intj)
{
m_mouseX=i;
m_mouseY=j;
intk=(int)(rand.nextDouble()*256D);
intl=(int)(rand.nextDouble()*256D);
inti1=(int)(rand.nextDouble()*256D);
intj1=k<<16|l<<8|i1|0xff000000;
intk1=0;
for(intl1=0;l1{
if(bit_f[l1]!
=0)
continue;
bit_px[l1]=m_mouseX;
bit_py[l1]=m_mouseY;
doubled=rand
doubled1=rand.nextDouble();
bit_vx[l1]=Math.sin(d)*d1;
bit_vy[l1]=Math.cos(d)*d1;
bit_l[l1]=(int)(rand.nextDouble()*100D)+100;
bit_p[l1]=(int)(rand.nextDouble()*3D);
bit_c[l1]=j1;
bit_sx[l1]=m_mouseX;
bit_sy[l1]=m_nAppY-5;
bit_f[l1]=2;
if(++k1==bit_max)
break;
}
if(bit_sound>1)
sound2.play();
returntrue;
}
publicbooleanmouseExit(Eventevent,inti,intj)
{
m_mouseX=i;
m_mouseY=j;
returntrue;
}
voidrend()
{
booleanflag=false;
booleanflag1=false;
booleanflag2=false;
for(intk=0;kswitch(bit_f[k])
{
default:
break;
case1:
//'\001'
bit_vy[k]+=rand.nextDouble()/50D;
bit_px[k]+=bit_vx[k];
bit_py[k]+=bit_vy[k];
bit_l[k]--;
if(bit_l[k]==0||bit_px[k]<0.0D||bit_py[k]<0.0D||bit_px[k]>(double)m_nAppX||bit_py[k]>(double)(m_nAppY-3))
{
bit_c[k]=0xff000000;
bit_f[k]=0;
}else
if(bit_p[k]==0)
{
if((int)(rand.nextDouble()*2D)==0)
bit_set((int)bit_px[k],(int)bit_py[k],-1);
}else
{
bit_set((int)bit_px[k],(int)bit_py[k],bit_c[k]);
}
break;
case2:
//'\002'
bit_sy[k]-=5;
if((double)bit_sy[k]<=bit_py[k])
{
bit_f[k]=1;
flag2=true;
}
if((int)(rand.nextDouble()*20D)==0)
{
inti=(int)(rand.nextDouble()*2D);
intj=(int)(rand.nextDouble()*5D);
bit_set(bit_sx[k]+i,bit_sy[k]+j,-1);
}
break;
}
if(flag2&&bit_sound>0)
sound1.play();
}
voidbit_set(inti,intj,intk)
{
intl=i+j*m_nAppX;
pix0[l]=k;
}
privateintm_nAppX;
privateintm_nAppY;
privateintm_centerX;
privateintm_centerY;
privateintm_mouseX;
privateintm_mouseY;
privateintm_sleepTime;
privatebooleanisError;
privatebooleanm_isPaintFinished;
booleanisRunning;
booleanisInitialized;
Threadrunner;
intpix0[];
MemoryImageSourceoffImage;
ImagedbImg;
intpixls;
intpixls2;
Randomrand;
intbits;
doublebit_px[];
doublebit_py[];
doublebit_vx[];
doublebit_vy[];
intbit_sx[];
intbit_sy[];
intbit_l[];
intbit_f[];
intbit_p[];
intbit_c[];
intbit_max;
intbit_sound;
intru;
intrv;
AudioClipsound1;
AudioClipsound2;
}
来源CSDN