预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

importjava.awt.Frame;//借用工具 importjava.awt.Panel; importjava.awt.Graphics; importjava.awt.Toolkit; importjava.awt.Image; importjava.awt.event.KeyListener; importjava.awt.event.KeyEvent; importjava.util.Random;//引用随机数 publicclassplanegames{ /** *@paramargs */ publicstaticvoidmain(String[]args){ Framewindow=newFrame();//创建一个窗体 window.setSize(240,320);//窗体大小 window.setTitle("是男人就坚持20秒");//窗体名字 myPanelmp=newmyPanel();//创建一个画布 window.add(mp);//将画布添加到窗体上 window.setVisible(true);//显示窗体 newThread(mp).start(); mp.addKeyListener(mp); //TODOAuto-generatedmethodstub } } classmyPanelextendsPanelimplementsRunnable,KeyListener{ Toolkittk=Toolkit.getDefaultToolkit();//获得读取数据工具 Randomr=newRandom(); booleanalive=true; Imagebg=tk.createImage(this.getClass().getResource("bg.png"));//背景 ImagebulletImg=tk.createImage(this.getClass().getResource("bullet.png"));//子弹 //子弹相关数据 intnums=30; int[]bx=newint[nums];//子弹的x坐标 int[]by=newint[nums];//子弹的y坐标 ImageplaneImg=tk.createImage(this.getClass().getResource("plane.png"));//飞机相关数据 intpx=113;//飞机的x坐标 intpy=160;//y坐标 boolean[]moveFlag=newboolean[4];//移动方向标志默认都为False double[]cos=newdouble[nums]; double[]sin=newdouble[nums]; publicvoidpaint(Graphicsg){ update(g); } publicvoidupdate(Graphicsg){ Imagetmp=createImage(240,320);//创建一个透明图片 Graphics_g=tmp.getGraphics();//取得这个图片 _g.drawImage(bg,0,0,this);//最后一个this表示在哪个画布上 if(alive){ _g.drawImage(planeImg,px,py,px+15,py+15,0,0,15,15,this); } else{ _g.drawImage(planeImg,px,py,px+15,py+15,15,0,30,15,this); } for(inti=0;i<nums;i++){ _g.drawImage(bulletImg,bx[i],by[i],this); } g.drawImage(tmp,0,0,this); } publicvoidrun(){ for(inti=0;i<nums;i++){ intdirect=r.nextInt(4);//0出现在上方1左2下3右 if(direct==0){ bx[i]=r.nextInt(240); by[i]=0; } if(direct==1){ bx[i]=0; by[i]=r.nextInt(320); } if(direct==2){ bx[i]=r.nextInt(240); by[i]=320; } if(direct==3){ bx[i]=240; by[i]=r.n