亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
国内成人精品2018免费看| 欧美综合一区二区三区| 日韩精品一区在线观看| 午夜一区二区三区在线观看| 欧美猛男男办公室激情| 日韩激情一二三区| 精品国产乱码久久久久久久| 九色porny丨国产精品| 久久综合久久99| 91在线你懂得| 亚洲国产你懂的| 欧美一区二区三区视频在线观看| 裸体健美xxxx欧美裸体表演| 久久精品日产第一区二区三区高清版| 欧美成人免费网站| 成人性生交大片免费看视频在线| 亚洲乱码日产精品bd| 91精品国产色综合久久| 国产成人免费视频一区| 一区二区激情小说| 欧美成人一级视频| www.日本不卡| 免费高清不卡av| 国产精品久久久久久久蜜臀 | 国产精品99久久久久久有的能看| 国产黄色精品网站| 国产成人久久精品77777最新版本| 在线观看亚洲a| 欧美综合色免费| 欧美午夜寂寞影院| 欧美丝袜丝nylons| 精品国产sm最大网站| 一区二区三区在线视频免费| 久久国产精品99久久久久久老狼| 日本道色综合久久| 亚洲精品菠萝久久久久久久| 久久综合久色欧美综合狠狠| 中文字幕不卡在线| 自拍偷拍欧美精品| 久草精品在线观看| 欧美精品日韩精品| 国产在线一区观看| 国产精品电影一区二区三区| 久久免费的精品国产v∧| 久久色中文字幕| 亚洲欧美韩国综合色| 亚洲男人的天堂在线观看| 亚洲午夜av在线| 91丨九色porny丨蝌蚪| 国产欧美日韩另类一区| 国产精品一区久久久久| 久久精品亚洲麻豆av一区二区| 日韩高清在线电影| 欧美一区二区三区日韩视频| 亚洲靠逼com| 亚洲制服丝袜一区| 午夜精品aaa| 亚洲欧美一区二区三区久本道91| 精品少妇一区二区三区日产乱码| 欧美艳星brazzers| 成人福利视频网站| 国产精品77777| 美日韩一级片在线观看| 亚洲3atv精品一区二区三区| 亚洲欧美激情小说另类| 国产精品天美传媒| 久久久久国产精品麻豆| 日韩一区二区电影| 91精品国产高清一区二区三区| 色噜噜狠狠成人网p站| 92国产精品观看| www..com久久爱| 成人精品国产免费网站| 国产高清不卡一区二区| 国产一区二区三区观看| 国产一区二区美女诱惑| 狠狠色丁香久久婷婷综| 狠狠色狠狠色综合系列| 久国产精品韩国三级视频| 久久成人免费日本黄色| 激情欧美日韩一区二区| 国产一区三区三区| 国产精品一卡二| 成人毛片老司机大片| 不卡的看片网站| 91视视频在线观看入口直接观看www | 一区二区三区在线不卡| 亚洲精选一二三| 五月激情综合婷婷| 天堂蜜桃91精品| 麻豆成人免费电影| 激情五月婷婷综合网| 国产不卡高清在线观看视频| 99久久综合狠狠综合久久| 97se狠狠狠综合亚洲狠狠| 在线亚洲欧美专区二区| 欧美日韩一区小说| 日韩女同互慰一区二区| 日韩精品一区国产麻豆| 欧美国产一区视频在线观看| 亚洲男人天堂av网| 蜜臀av性久久久久av蜜臀妖精| 激情小说欧美图片| 91蜜桃网址入口| 欧美一区二区国产| 国产婷婷色一区二区三区四区| 亚洲欧洲av色图| 偷拍日韩校园综合在线| 国产精选一区二区三区| 91蜜桃网址入口| 精品美女在线播放| 中文字幕一区在线观看| 婷婷国产v国产偷v亚洲高清| 国产馆精品极品| 欧美午夜视频网站| 久久久精品国产99久久精品芒果| 亚洲日本电影在线| 精品一区二区三区免费视频| 成人黄色免费短视频| 7878成人国产在线观看| 国产婷婷色一区二区三区四区| 夜夜操天天操亚洲| 国产精品系列在线观看| 欧美男男青年gay1069videost | 中文字幕 久热精品 视频在线| 亚洲婷婷综合色高清在线| 麻豆91免费看| 日本韩国欧美国产| 国产亚洲精品精华液| 日韩av电影一区| 91香蕉国产在线观看软件| 精品国产乱码久久久久久闺蜜| 亚洲色图欧美偷拍| 国产一区二区精品久久99| 欧美日韩精品一区二区三区| 国产精品久久精品日日| 韩国精品在线观看| 欧美日韩专区在线| 亚洲三级电影全部在线观看高清| 另类小说色综合网站| 欧美男女性生活在线直播观看| 亚洲日本va午夜在线影院| 国产美女精品在线| 日韩欧美一区二区视频| 香蕉久久一区二区不卡无毒影院| 北岛玲一区二区三区四区| 久久九九全国免费| 精品一区免费av| 欧美一区二区三区爱爱| 亚洲高清视频中文字幕| 色综合久久久久综合体| 国产精品水嫩水嫩| 国产馆精品极品| 国产欧美日韩在线看| 狠狠色狠狠色合久久伊人| 日韩免费观看2025年上映的电影 | 亚洲欧美日韩一区二区 | 91欧美一区二区| 国产精品丝袜91| 风间由美一区二区三区在线观看 | 亚洲一线二线三线视频| 一本色道久久综合狠狠躁的推荐 | 欧美精品一区二区三区蜜桃视频| 蜜臀99久久精品久久久久久软件| 欧美一区二区视频在线观看2020| 舔着乳尖日韩一区| 7777精品伊人久久久大香线蕉经典版下载 | 日韩成人免费在线| 日韩亚洲欧美综合| 免费成人av在线| 欧美tk丨vk视频| 国产成人免费9x9x人网站视频| 亚洲国产精品精华液ab| 成人精品视频网站| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 国产精品久久久久久户外露出| av在线播放一区二区三区| 亚洲综合色婷婷| 制服丝袜亚洲精品中文字幕| 欧美aaa在线| 久久精品一区二区三区不卡牛牛| 国产成人精品午夜视频免费| 国产精品久久久久久亚洲伦| 在线精品国精品国产尤物884a| 亚洲国产日产av| 精品国产免费人成电影在线观看四季| 国内精品伊人久久久久av一坑| 欧美极品少妇xxxxⅹ高跟鞋 | 91国产视频在线观看| 日本不卡的三区四区五区| 精品国产一区二区三区不卡| 国产成人aaa| 亚洲最色的网站| 日韩欧美国产成人一区二区| 国产成人av电影在线观看| 亚洲视频在线一区| 91精品国产色综合久久不卡电影| 国产精品一区二区男女羞羞无遮挡| 中文字幕日本乱码精品影院| 欧美在线免费观看亚洲|