在好例子网,分享、交流、成长!
您当前所在位置:首页Java 开发实例Java游戏开发 → Java 飞机游戏源码(带音乐)

Java 飞机游戏源码(带音乐)

Java游戏开发

下载此实例
  • 开发语言:Java
  • 实例大小:18.65M
  • 下载次数:659
  • 浏览次数:2149
  • 发布时间:2015-08-26
  • 实例类别:Java游戏开发
  • 发 布 人:闷烧20年
  • 文件格式:.zip
  • 所需积分:0
 相关标签: 游戏

实例介绍

【实例简介】

【实例截图】

【核心代码】

package liujunbo.feiji;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;


public class ZhuChuangTi extends Frame{
	
	
	
	
      public void showWin(){
    	  Music m=new Music("/music/We_Are_One.mp3", true);
    	  if(!m.isPlay){
    		  m.startPlay();
    	  }
    	  this.setSize(800, 600);
    	  this.setLocationRelativeTo(null);
    	  this.setResizable(false);
    	  this.setTitle("打飞机");
    	  this.addWindowListener(new Wincolse());
    	  this.setVisible(true);
    	  //开辟线程,让游戏启动
    	  new myThread().start();
    	  //将键盘添加到添加到内部条件
    	  this.addKeyListener(new MyKey());
      }
      
      
      
      //获取图片工具类
    	Toolkit toolKit =Toolkit.getDefaultToolkit();
    	//获取一张空图
    	Image ph_img=null;
    	//获取背景图片
    	Image bg_img = toolKit.getImage(ZhuChuangTi.class.getResource("/imgs/imgs/bg.jpg"));
    	Image pl_img = toolKit.getImage(ZhuChuangTi.class.getResource("/imgs/我军飞机2.gif"));
    	Image bl_img = toolKit.getImage(ZhuChuangTi.class.getResource("/imgs/敌军2.gif"));
    	Image pl_zidan = toolKit.getImage(ZhuChuangTi.class.getResource("/imgs/敌军子弹3.png"));
    	Image pl_boss = toolKit.getImage(ZhuChuangTi.class.getResource("/imgs/Boss.png"));
    	Image boss_zidan = toolKit.getImage(ZhuChuangTi.class.getResource("/imgs/Boss子弹2.png"));
    	Image dijun_zidan = toolKit.getImage(ZhuChuangTi.class.getResource("/imgs/敌军子弹2.png"));
    	
    	WjunFeiJi pl=new WjunFeiJi (this,true);
    	BeiJing bg=new BeiJing(this);
    	Boss bs=new Boss(this,true);
    	
    	
//    	DiJunFeiJi dl=new DiJunFeiJi(this);
    	//WoJunZiDan pb=new WoJunZiDan(pl.pl_x, pl.pl_y, true, this);
    	//实例化飞机子弹集合
    	List<WoJunZiDan>plzidan=new ArrayList<WoJunZiDan>();
    	//实例化敌军飞机集合类
    	List<DiJunFeiJi>dijun=new ArrayList<DiJunFeiJi>();
    	List<WjunFeiJi>wojun=new ArrayList<WjunFeiJi>();
    	List<Boss>Boss=new ArrayList<Boss>();
    	List<Bosszidan>Boss_zd=new ArrayList<Bosszidan>();
    	List<Dijunzidan>dijun_zd=new ArrayList<Dijunzidan>();
    	//实例化随机类
    	Random random =new Random();
    	int time=0;
    	
    	int bosstime = 0;
      //双缓冲,解决闪屏
      @Override
      public void update(Graphics g) {
    	  if(ph_img==null){
    		  ph_img=this.createImage(800, 600);
    	  }
    	  //创建一支画笔
    	  Graphics gph=ph_img.getGraphics();
    	  //设置图片为白色
    	  gph.setColor(Color.white);
    	  //设置与窗体大小相同的矩形
    	  gph.fillRect(0, 0, 800, 600);
    	  
    	  //调用paint方法
    	  paint(gph);
    	  
    	  
    	  g.drawImage(ph_img,0,0,null);
    	  
    	  
      };
      
      //自动调用
      @Override
    public void paint(Graphics g) {
             bg.drawMe(g);
             pl.drawMe(g);
             
             bs.drawWe(g);
             
             for (int i = 0; i < dijun_zd.size(); i  ) {
            	 Dijunzidan dijunzidan=dijun_zd.get(i);
            	 dijunzidan.drawMe(g);
            	 dijunzidan.hitdijunzidan(pl);
			}
             
             
             
           for (int i = 0; i < Boss_zd.size(); i  ) {
			Bosszidan bszd=Boss_zd.get(i);
			bszd.drawMe(g);
			bszd.hitBosszidan(pl);
		}
             
    	    
    	     for (int i=0; i<plzidan.size();i  ){
    	    	
    						WoJunZiDan pb= plzidan.get(i);
    		    	    	pb.drawMe(g);
    		    	    	pb.hitdijun(dijun);
    		    	    	pb.hitBoss(bs);
    		    	    	
    					
    				
    				}
    	    	 //调用敌军飞机绘画方法
    	    	 for (int j = 0; j < dijun.size(); j  ) {
    	    		 DiJunFeiJi ep=dijun.get(j);
    	    		 
    	    		 ep.drawWe(g);
    	    		 ep.hitwjfj(pl);
    	    	     
				}
    	    	 
    	    	
    	     }
      public void quyu(){
    	  if(random.nextInt(800)<100){
    		  random.nextInt(800);
    	  }else if(random.nextInt(800)>200){
    		  random.nextInt(800);
    	  }
      }
    
      //添加敌军飞机
      public void getdijunfeiji() {
    	  if(time%20==0){
		//实例化敌军飞机
    	  DiJunFeiJi di=new DiJunFeiJi(random.nextInt(750), 0, true, this);
    	  quyu();
    	  dijun.add(di);
    	  
	}
      }
      
      

      
      
      
      
      //内部类关闭窗体
      private class Wincolse extends WindowAdapter{

		@Override
		public void windowClosing(WindowEvent e) {
			System.exit(0);
		}
    	  
      }
      
      
      //定义一个内部类,用于游戏启动--->thread 线程
      public class myThread extends Thread{

		@Override
		public void run() {
			//让游戏一直畅通
			while (true){
				//睡眠
				//try--》捕获异常,catch--》处理异常
				try {
					sleep(30);
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				//重绘方法 --》repaint
				repaint();
				//调用敌军飞机添加方法
				
				getdijunfeiji();
				time  ;
				bosstime  ;
			}
		}
    	  
      }
      
      //定义键盘内部类用于飞机的操作
      private class MyKey extends KeyAdapter{
         //按下
		@Override
		public void keyPressed(KeyEvent e) {
			//调用按下的方法
			pl.pressKey(e);
		}
        //松开
		@Override
		public void keyReleased(KeyEvent e) {
			pl.ReleasKey(e);
		}
    	  
      }
      
      
      
      
	
	public static void main(String[] args) {
		ZhuChuangTi gs=new ZhuChuangTi();
		gs.showWin();
  
	}


}

标签: 游戏

实例下载地址

Java 飞机游戏源码(带音乐)

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

第 1 楼 一只萌新javakaifa 发表于: 2018-06-05 17:04 48
怎么导入到ecplise里

支持(0) 盖楼(回复)

发表评论

(您的评论需要经过审核才能显示)

查看所有1条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警