亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? game.java

?? 經典的五星級縱版平面飛行射擊游戲
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
import java.awt.* ;
import java.awt.event.*;
import javax.swing.* ;
import java.util.* ;
import java.awt.event.MouseMotionListener;
import java.util.EventListener;
import java.awt.event.MouseEvent;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.MouseListener;
import java.awt.event.KeyListener;
import java.awt.event.KeyEvent;

public class Game extends JFrame 
{
	int x,y;
	//JPanel op;JButton bs;
	Mp p1;
	Game()
	{
		//使窗體居中
		x = Toolkit.getDefaultToolkit().getScreenSize().width/2;
		y = Toolkit.getDefaultToolkit().getScreenSize().height;
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setSize(x,y);
		this.setLocation(x/2,0);
		this.setResizable(false);
		this.setTitle("GAME");
		this.setBackground(Color.BLACK);
		this.setCursor(Cursor.CROSSHAIR_CURSOR);
		Container cn = getContentPane();
		p1 = new Mp(this);
		cn.add(p1,BorderLayout.CENTER);
	}
	
	public static void main (String s[])
	{
		Game w = new Game();
		w.show();
	}
}

//主面板
class Mp extends JPanel implements Runnable, 
      MouseMotionListener, MouseListener
{
	Game a;
	Vector BBv = new Vector();// 子彈數組
	Vector EEv = new Vector();// 敵機數組
	Vector BOMBv = new Vector();// 爆炸數組
	Vector EBv = new Vector();//敵機子彈數組
	int E_num ;
	int E_max ; //敵機最大數
	int E_vel ; //敵機速度
	int E_mov ; //敵機橫移幾率
	int E_hit ; //敵機開火幾率
	int Sum ; //擊墜數
	int hero_hp ; //hero生命
    Image back = null;
    Image hero = null;
    Image hero_l = null;
    Image hero_r = null;
    Image fire = null;
    Image fire_1 = null;
    Image el_0 = null;
    Image el_0_l = null;
    Image el_0_r = null;
    Image el_bb = null;
    Image el_bb_0 = null;
    Image bomb_0 = null;
    Image bomb_1 = null;
    Image bomb_2 = null;
    Image bomb_3 = null;
    MediaTracker tracker = null ;//媒體跟蹤器,用來監測圖像的裝載
    Thread Game_star; 
    int y;// 背景滾動變量
    int hero_oldx,hero_oldy; // hero的,舊x,y坐標
    int hero_x,hero_y; // hero的,新x,y坐標
    int seq; //hero 的動畫變量
    int dir; //hero 的左右方向變量
    boolean isfire;//hero開火
    int BBx,BBy; 
    Font f = new Font("黑體",Font.BOLD,30);
    Font ff = new Font("黑體",Font.BOLD,90);
    Font S = new Font("幼圓",Font.BOLD,15);
    Font SS = new Font("幼圓",Font.BOLD,25);
    
    Mp(Game a)
	{
		this.a = a;
		tracker = new MediaTracker(this) ; //媒體跟蹤器監測圖像裝載的情況        
		back = Toolkit.getDefaultToolkit().getImage(Mp.class.getResource("/back.jpg"));
		tracker.addImage(back,0) ;
		hero = Toolkit.getDefaultToolkit().getImage(Mp.class.getResource("/hero.gif"));
		tracker.addImage(hero,1) ;
		//hero_l = Toolkit.getDefaultToolkit().getImage(Mp.class.getResource("/hero_l.gif"));
		//tracker.addImage(hero_l,2) ;
		//hero_r = Toolkit.getDefaultToolkit().getImage(Mp.class.getResource("/hero_r.gif"));
		//tracker.addImage(hero_r,3) ;
		fire = Toolkit.getDefaultToolkit().getImage(Mp.class.getResource("/fire.gif"));
		tracker.addImage(fire,2) ;
		fire_1 = Toolkit.getDefaultToolkit().getImage(Mp.class.getResource("/fire_1.gif"));
		tracker.addImage(fire_1,3) ;
		el_0 = Toolkit.getDefaultToolkit().getImage(Mp.class.getResource("/el_0.gif"));
		tracker.addImage(el_0,4) ;
		el_0_l = Toolkit.getDefaultToolkit().getImage(Mp.class.getResource("/el_0_l.gif"));
		tracker.addImage(el_0_l,5) ;
		el_0_r = Toolkit.getDefaultToolkit().getImage(Mp.class.getResource("/el_0_r.gif"));
		tracker.addImage(el_0_r,6) ;
		el_bb = Toolkit.getDefaultToolkit().getImage(Mp.class.getResource("/el_bb.gif"));
		tracker.addImage(el_bb,7) ;
		el_bb_0 = Toolkit.getDefaultToolkit().getImage(Mp.class.getResource("/el_bb_0.gif"));
		tracker.addImage(el_bb_0,8) ;
		bomb_0 = Toolkit.getDefaultToolkit().getImage(Mp.class.getResource("/bomb_0.gif"));
		tracker.addImage(bomb_0,9) ;
		bomb_1 = Toolkit.getDefaultToolkit().getImage(Mp.class.getResource("/bomb_1.gif"));
		tracker.addImage(bomb_1,10) ;
		bomb_2 = Toolkit.getDefaultToolkit().getImage(Mp.class.getResource("/bomb_2.gif"));
		tracker.addImage(bomb_2,11) ;
		bomb_3 = Toolkit.getDefaultToolkit().getImage(Mp.class.getResource("/bomb_3.gif"));
		tracker.addImage(bomb_3,12) ;
		
		this.addMouseMotionListener(this);
		this.addMouseListener(this);
		Game_star= new Thread(this);
		//Game_star.start();
		//Game_star.setPriority(7);
		y = - (5*a.y);
		hero_x = a.x/2 - 50;
		hero_y = a.y - 150;
		hero_oldx = hero_x;
		hero_oldy = hero_y;
		hero_hp = -1;
		seq = 0;
		dir = 0;
		Sum = 0;
		E_num = 0;
		E_max = 9;
		E_vel = 7;
		E_mov = 90;
		E_hit = 97;
		isfire = false;
	}
	
	//繪圖部分
	public void paint(Graphics g)
	{
    	g.drawImage(back,0,y,a.x,a.y*6,this);
		g.setColor(Color.RED);
		g.setFont(S);
		g.drawString("生",a.x - 23,40);
		g.drawString("命",a.x - 23,55);
		g.fillRect(a.x - 20,65,10,hero_hp);
		g.setColor(Color.BLACK);
		g.drawRect(a.x - 20,64,10,200);
		if ( seq == 0 ) g.setColor(Color.RED);
		if ( seq == 1 ) g.setColor(Color.BLACK);
		//顯示信息(設置字體)
		g.setFont(S);
		g.drawString("積分:",a.x - 80,25);
	    g.drawString(String.valueOf(Sum),a.x - 40,25);
	    g.setFont(f);
	    //如果游戲尚未開始顯示如下信息
	    if (hero_hp == -1)
		{ 
		  g.setFont(f);
		  g.setColor(Color.RED);
		  g.drawString("你能超過1000分嗎?",a.x/2- a.x/3,a.y/2-a.y/16);
		  g.setFont(SS);
		  g.setColor(Color.RED);
		  g.drawString("請按下鼠標鍵開始",a.x/2- a.x/4,a.y/2+a.y/8);
		  g.dispose();
		  try{ this.Game_star.sleep(50);}
		  catch(Exception e){};
		  this.Game_star = null;
		}
	    //如果游戲結束顯示如下信息
	    else if (hero_hp < 0)
		{ 
		  g.setFont(ff);
		  g.setColor(Color.RED);
		  g.drawString("GAME",a.x/2- a.x/4,a.y/2-a.y/16);
		  g.drawString("OVER",a.x/2- a.x/4,a.y/2+a.y/16);
		  g.setFont(SS);
		  g.setColor(Color.BLACK);
		  g.drawString("請按下鼠標鍵重來",a.x/2- a.x/4,a.y/2+a.y/8);
		  g.dispose();
		  try{ this.Game_star.sleep(50);}
		  catch(Exception e){};
		  this.Game_star = null;
		}
        //顯示信息	    
	    if (Math.abs(y) > (a.y)*5 - 50)       
		{ g.drawString("本游戲即將開始",a.x/2- a.x/4,a.y/2-a.y/8);} 
        if (Math.abs(y) > (a.y)*4 && Math.abs(y) < (a.y)*4 + 150)       
		{ E_max = 13; E_vel = 7; E_mov = 90; E_hit = 95;
		  g.drawString("第一關即將開始",a.x/2- a.x/4,a.y/2-a.y/8);} 
        if (Math.abs(y) > (a.y)*3 && Math.abs(y) < (a.y)*3 + 150)       
		{ E_max = 16; E_vel = 9; E_mov = 90; E_hit = 93;
		  g.drawString("第二關即將開始",a.x/2- a.x/4,a.y/2-a.y/8);} 
        if (Math.abs(y) > (a.y)*2 && Math.abs(y) < (a.y)*2 + 150)       
		{ E_max = 29; E_vel = 11; E_mov = 90; E_hit = 91;
		  g.drawString("第三關即將開始",a.x/2- a.x/4,a.y/2-a.y/8);} 
        if (Math.abs(y) > (a.y) && Math.abs(y) < (a.y) + 150)       
		{ E_max = 32; E_vel = 13; E_mov = 90; E_hit = 89;
		  g.drawString("最后了祝你好運",a.x/2- a.x/4,a.y/2-a.y/8);} 
        if (y == 0)
        { E_max = 40; E_vel = 18; E_mov = 90; E_hit = 86;
          g.drawString("向上帝祈禱吧!",a.x/2- a.x/4,a.y/2-a.y/8);} 
         //處理敵機子彈s
		  for (int i = 0 ; i < EBv.size() ; i ++ )
	      {
	    	EB ebs ;
	    	ebs = (EB) EBv.elementAt(i);
	    	if (ebs.y>-50)
	    	{ 
	    	  if (ebs.cont < 6 ) g.drawImage(el_bb,ebs.x,ebs.y,20,20,this);
	    	  if (ebs.cont >= 6 ) g.drawImage(el_bb_0,ebs.x,ebs.y,20,20,this);
	    	}
	    	else {  }
	      }
	      // 處理子彈s       
		  for (int i = 0 ; i < BBv.size() ; i ++ )
	      {
	    	BB bs ;
	    	bs = (BB) BBv.elementAt(i);
	    	if (bs.y>-50)
	    	{ 
	    	   	  if (bs.cont < 3 ) g.drawImage(fire_1,bs.x,bs.y,50,50,this);
	    	   	  if (bs.cont >= 3) g.drawImage(fire,bs.x,bs.y,50,50,this);
	    	}
	    	else { }
	      }
	      // 處理爆炸s       
		  for (int i = 0 ; i < BOMBv.size() ; i ++ )
	      {
	    	Bomb bombs ;
	    	bombs = (Bomb) BOMBv.elementAt(i);
	    	if (bombs.islive)
	    	{ 
	    	   	  if (bombs.cont < 10 ) g.drawImage(bomb_0,bombs.x,bombs.y,50,50,this);
	    	   	  if (bombs.cont > 10 && bombs.cont < 20) g.drawImage(bomb_1,bombs.x,bombs.y,50,50,this);
	    	   	  if (bombs.cont > 20 && bombs.cont < 40) g.drawImage(bomb_2,bombs.x,bombs.y,50,50,this);
	    	   	  if (bombs.cont > 40 ) g.drawImage(bomb_3,bombs.x,bombs.y,50,50,this);
	    	}
	    	else { BOMBv.remove(i); }
	      }	      
	      // 處理敵機s
		  for (int i = 0 ; i < EEv.size() ; i ++ )
	      {
	    	EE es;
	    	es = (EE) EEv.elementAt(i);
	    	if (es.y<(a.y-50))
	    	{
               if (es.islive && !es.toleft && !es.toright)
	    	   { g.drawImage(el_0,es.x,es.y,50,50,this); }
	    	   else if (es.toleft)
	    	   { g.drawImage(el_0_l,es.x,es.y,50,50,this);}
	    	   else if (es.toright)
	    	   { g.drawImage(el_0_r,es.x,es.y,50,50,this);}
	    	}
	    	else { es.islive = false; }
	      }
	    //處理hero  
	    g.clipRect(hero_x,hero_y,70,70);		
	    g.drawImage(hero,(hero_x-seq*70),hero_y,140,70,this);
	        //dir判斷圖像效果不好取消
	        //else if (dir == 1) g.drawImage(hero,(hero_x-70),hero_y,140,70,this);
	        //else if (dir == 2) g.drawImage(hero,(hero_x-70),hero_y,140,70,this);	     
	}
	
	//主線程
	public void run()
    {
       int cont = 0;// 定義更換hero動畫的頻率

       while (tracker.checkAll(true) == false) 
       { try {Thread.sleep(300);} catch (Exception e) { } ;}
	   while(Game_star != null)
       {
          //處理敵機s是否撞擊hero
          if (EEv.size() == 0){ E_num = 0;}//清空敵機數組
          if ( cont != 0)
          {
            //移動條件下增加難度
            if (E_num <= E_max)//滿足條件則增加敵機
           {
          	  EE es;
          	  es = new EE((int)(Math.random()*(a.x-50)),E_vel,E_mov,E_hit);
          	  EEv.addElement(es);
          	  E_num++;
           }
           for (int i = 0 ; i < EEv.size() ; i ++)
           { 
             EE es;
             es = (EE) EEv.elementAt(i);
             if (es.y < (a.y-50) && es.islive) 
             {
             	es.hit(hero_x,hero_y);//監測碰撞
             	if (!es.islive)
             	{ 
             	   Bomb bombs;
             	   bombs = new Bomb(es.x,es.y);
             	   BOMBv.add(bombs);
             	   System.out.println("YOU LOST");
             	   hero_hp -= 10;
             	}
             	if (es.islive)//移動未撞到的敵機
             	{ 
             	  es.move(hero_x);
             	  es.tofire();
             	  if (es.tofire() && i%4 == 0 && es.y < (a.y - 100))
             	  { 
             	     EB ebs;
             	     ebs = new EB(es.x,es.y,hero_x,hero_y);
             	     EBv.addElement(ebs);
             	  } 
             	}
             }
             else {EEv.remove(i);}//消除無效敵機
           }
          }
          // 處理子彈s是否擊中
          for (int i = 0 ; i < BBv.size() ; i ++)
          { 
             BB bs; 
             bs = (BB) BBv.elementAt(i);
             if (bs.y > -50 && bs.islive) // 子彈存活 
             {  for (int j = 0 ; j < EEv.size() ; j ++)
                {
                	EE es;
                	es = (EE) EEv.elementAt(j);
                	if (es.islive && bs.islive)//敵機存活
                	{ 
                	   es.hit(bs.x,bs.y);
                	   bs.hit(es.x,es.y);//監測碰撞
                	   if (!es.islive)//添加爆炸
             	       { 
             	          Sum++;
             	          Bomb bombs;
             	          bombs = new Bomb(es.x,es.y);
             	          BOMBv.add(bombs);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美国产1区2区| 欧美色大人视频| 日韩不卡免费视频| 国产日韩欧美精品电影三级在线| 99久久精品免费看国产免费软件| 亚洲午夜久久久久久久久电影网| 久久蜜桃av一区精品变态类天堂| 91麻豆精品国产91久久久久| 99re视频精品| 色综合久久精品| 99久久精品99国产精品| 国产福利一区在线| 免费观看成人鲁鲁鲁鲁鲁视频| 亚洲第四色夜色| 一区二区久久久| 一区二区在线观看免费| 国产精品入口麻豆原神| 国产女同互慰高潮91漫画| 精品三级av在线| 日本一区二区动态图| 国产精品美女久久久久久| 国产精品少妇自拍| 欧美经典三级视频一区二区三区| 日本一区二区视频在线观看| 久久精品亚洲国产奇米99| 久久综合九色综合97婷婷女人| 日韩免费观看高清完整版在线观看| 日韩午夜三级在线| 中文字幕精品一区二区精品绿巨人 | 中文成人av在线| 一区二区三区在线免费播放| 一区二区三区欧美久久| 亚洲高清视频在线| 久久国产成人午夜av影院| 久久99久久精品欧美| av不卡一区二区三区| 色网站国产精品| 日韩午夜av一区| 亚洲欧洲日韩在线| 日韩成人一级大片| 国产激情一区二区三区| 欧美午夜精品理论片a级按摩| 日韩欧美久久一区| 国产精品一区二区在线看| 91免费国产视频网站| 91精品啪在线观看国产60岁| 久久精品一区八戒影视| 日日摸夜夜添夜夜添精品视频| 成人禁用看黄a在线| 欧美日韩你懂的| 亚洲欧美日韩在线| 国产大陆a不卡| 精品视频1区2区3区| 欧美极品少妇xxxxⅹ高跟鞋| 麻豆91在线看| 51精品视频一区二区三区| 国内成人免费视频| 欧美日韩一本到| 亚洲一级片在线观看| 91在线视频在线| 亚洲精品日韩一| 99精品视频一区| 国产精品女人毛片| 成人综合在线网站| 国产精品欧美综合在线| 国产成人无遮挡在线视频| 日韩欧美一区在线| 琪琪久久久久日韩精品| 日韩视频一区二区三区| 五月天一区二区| 91.com视频| 六月婷婷色综合| 久久亚洲综合色| 粉嫩13p一区二区三区| 国产精品久久久久毛片软件| 国产精品一区二区在线观看不卡| 国产亚洲综合av| 成人久久久精品乱码一区二区三区| 国产免费成人在线视频| 99视频精品全部免费在线| 亚洲精品水蜜桃| 日韩一区二区视频在线观看| 精品一区二区在线看| 久久久久国色av免费看影院| 成人亚洲一区二区一| 一区二区高清免费观看影视大全 | 欧美午夜一区二区三区 | 国产精品一区二区果冻传媒| 国产亚洲一区字幕| 在线观看视频91| 91影院在线观看| 日产欧产美韩系列久久99| 久久久久久一二三区| www..com久久爱| 久久av老司机精品网站导航| 国产精品久久久久久久久久免费看| 欧美另类一区二区三区| 成人综合在线观看| 欧美aaaaaa午夜精品| 成人免费一区二区三区视频| 7777精品伊人久久久大香线蕉的| 成人性视频网站| 五月综合激情日本mⅴ| 亚洲天堂免费在线观看视频| 欧美videofree性高清杂交| 日本久久精品电影| 国产福利不卡视频| 玖玖九九国产精品| 五月婷婷另类国产| 亚洲一二三区视频在线观看| 国产精品人成在线观看免费| 久久影音资源网| 久久先锋影音av鲁色资源网| 欧美人牲a欧美精品| av在线播放成人| 成人免费高清在线观看| 国产精品1区2区3区在线观看| 蜜臀99久久精品久久久久久软件| 天天综合天天综合色| 亚洲国产精品久久艾草纯爱 | 国产日韩欧美一区二区三区乱码 | heyzo一本久久综合| 成人福利视频网站| 国产成人午夜高潮毛片| 高清国产一区二区| 99久久99精品久久久久久 | 国产成人在线观看免费网站| 国产精品亚洲一区二区三区妖精 | 午夜精品久久久久久久久久久| 亚洲国产成人av好男人在线观看| 亚洲欧美另类久久久精品| 亚洲男人的天堂在线aⅴ视频 | 中文字幕在线不卡一区二区三区| 亚洲天堂免费在线观看视频| 亚洲最新视频在线观看| 午夜视频一区在线观看| 国产真实乱对白精彩久久| 成人动漫精品一区二区| 欧美自拍丝袜亚洲| 欧美一区二区免费视频| 久久在线免费观看| 亚洲人亚洲人成电影网站色| 亚洲18色成人| 国产成人鲁色资源国产91色综| 91在线一区二区| 日韩精品一区二区三区在线 | 五月天丁香久久| 久久机这里只有精品| 色综合久久88色综合天天| 欧美va在线播放| 亚洲精品五月天| 国产成人激情av| 91精品婷婷国产综合久久 | 高清在线成人网| 欧美一区二区三区精品| 亚洲视频一区二区免费在线观看| 蜜臀精品一区二区三区在线观看 | 国产欧美一区二区三区网站| 午夜精品成人在线| 日本久久精品电影| 中文字幕在线观看一区| 国产麻豆午夜三级精品| 911国产精品| 日韩综合小视频| 91香蕉视频黄| 日韩美女视频19| 99久久99久久综合| 亚洲国产精品传媒在线观看| 国内精品免费**视频| 日韩一区二区高清| 亚洲成a人在线观看| 在线中文字幕一区| 亚洲免费av高清| 99久久99久久精品免费观看| 国产精品嫩草影院com| 成人高清伦理免费影院在线观看| 亚洲国产成人午夜在线一区| 成人a免费在线看| 亚洲免费观看高清完整版在线观看熊| 成人一区二区三区视频在线观看 | 国产精品福利一区二区三区| 国内久久精品视频| 久久婷婷一区二区三区| 奇米影视一区二区三区| 欧美大尺度电影在线| 激情综合网最新| 日韩一区欧美小说| 欧美最新大片在线看| 午夜视频一区二区| 精品乱人伦小说| 99re热视频这里只精品| 一区二区成人在线视频 | 国产亚洲精久久久久久| av成人免费在线| 日韩中文字幕一区二区三区| 欧美精品v国产精品v日韩精品| 九九九精品视频| 亚洲精品日韩综合观看成人91| 91精品国产91久久久久久一区二区| 老司机精品视频一区二区三区|