打字母游戏java代码 java打字小游戏( 二 )


URL u2=this.getClass().getResource("lanjie.wav");
ac1=Applet.newAudioClip(u1);
ac2=Applet.newAudioClip(u2);
}catch(Exception e){}
for (int i=0;i10;i++)
{pd[i]=noRepeat();
x[i]=noHit(i,10);
if (i=5)
y[i]=5+(int)(Math.random()*50);
else
y[i]=60+(int)(Math.random()*50);
x1[i]=220+i*32+1; y1[i]=550;
x2[i]=x1[i];
}
}
public void panduan() //用来判断pd[i]的y值是否要到达屏幕下边,如果是就把Y值变为5,并把所有Y值加3.
{ for(int i=0;i10;i++)
{ if (y[i]=500)
{life--;ac1.play();y[i]=5;}
y[i]+=3;
if (life==0) System.exit(0);
}
y[9]+=3;
md.setTitle("打字训练室打字母游戏java代码你的生命为"+life+"提示:白色的字母表示未按,粉红色的表示已按.");
}
public void fk() //防空程序,用来击毁落下的炸弹
{ int i=0,j=0;
for (i=0;i10;i++)
{if (!fj[i].equals(""))
{
for (j=0;j10;j++)
if (fj[i].equals(pd[j]))
{if (!(x1[i]=x[j]x1[i]=x[j]+32 || x1[i]+32=x[j]x1[i]+32=x[j]+32))
if (x1[i]x[j])
x1[i]-=4;
else x1[i]+=4;
if (!(y1[i]=y[j]y1[i]=y[j]+32 || y1[i]+32=y[j]y1[i]+32=y[j]+32))
if (y1[i]y[j])
y1[i]-=3;
else y1[i]+=4;
if (y[j]=380Math.abs(x[j]-x1[i])5)
if (x[j]x1[i]) x1[i]+=5;
else if (x[j]x1[i]) x1[i]-=5;
if (y[j]=380Math.abs(y[j]-y1[i])5)
if (y[j]y1[i]) y1[i]+=5;
else if (y[j]y1[i]) y1[i]-=5;
if ((x1[i]=x[j]x1[i]=x[j]+32 || x1[i]+32=x[j]x1[i]+32=x[j]+32)(y1[i]=y[j]y1[i]=y[j]+32 || y1[i]+32=y[j]y1[i]+32=y[j]+32))
{life++;ac2.play();pd[j]=noRepeat(); x[j]=noHit(i,10); y[j]=5; x1[i]=x2[i];y1[i]=550;fj[i]="";}
break;
}
if (j==10)y1[i]-=3;
if (y1[i]=5) {y1[i]=550; fj[i]="";}
}
}
}
public void paint(Graphics g)
//根据相应的坐标在屏幕上画炸弹和吃炸弹的娃娃,并保证白色的字母表示未按,粉红色的表示已按
{int i=0,j=0;
g.setFont(new Font("Vrinda",1,21));
for(;ipd.length;i++)
{ for (j=0;jfj.length;j++)
if (pd[i].equals(fj[j]))
{g.setColor(new Color(255,93,55));
g.drawImage(paodan,x[i],y[i],this);
g.drawString(pd[i],x[i]+11,y[i]+20);
break;
}
if (j==fj.length)
{g.setColor(new Color(255,255,255));
g.drawImage(paodan,x[i],y[i],this);
g.drawString(pd[i],x[i]+11,y[i]+20);
}
g.setColor(new Color(255,93,55));
g.drawImage(huojian,x1[i],y1[i],this);
g.drawString(fj[i],x1[i]+10,y1[i]+22);
}
}
//没有按的显红色,按打字母游戏java代码了的显白色
public void keyPressed(KeyEvent k) //当用户按的是字母时,就生成一个防空字母.
{char z=k.getKeyChar();
int i=0,j=0;
if ((z='A'z='Z') || (z='a'z='z'))
{if (z-32=65) z-=32;
String zc=""+z;
for(;ifj.length;i++)
{if (zc.equals(fj[i])) break;
} //保证字母不重复
if (i==fj.length)
for(i=0;ifj.length;i++)
if (fj[i].equals("")) {fj[i]=zc;break;}
}
}
public void keyReleased(KeyEvent k){}
public void keyTyped(KeyEvent k){}
public String noRepeat() //生成一个不重复的字母.
{int zc,i;
String xinx;
while(true)
{zc=(int)(Math.random()*26);
xinx=Zi26.substring(zc,zc+1);
for(i=0;i10;i++)
if (pd[i].equals(xinx))break;
if(i==10)return xinx;
}
}
int noHit(int i,int langth) //让字母保持车距.
{int tmpX,j,k,width=32;
while (true)
{ tmpX=(int)(Math.random()*768)+1;
for(j=0;j10;j++)
{if (tmpX+widthx[j] || tmpXx[j]+width) continue; //如果欲生成的位置不与当前J所占的位置相交就判断下一个J.
if ((tmpX=x[j]tmpX=x[j]+width) || (tmpX+width=x[j]tmpX+width=x[j]+width)) break;
//如果欲生成的位置与当前x[j]所占据的范围相交就结束循环,重新生成一个起始位置.

推荐阅读