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

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

?? airplane.java

?? java小游戲代碼
?? JAVA
字號:
// 程序:火焰中的飛機
// 范例文件:Airplane.java

import java.awt.*;
import java.util.*;
import java.applet.*;
import java.awt.event.*;

abstract class SuperSprite     //這是Sprite父類
{
   int     X,Y,width,height;
   boolean visible,active;

   abstract public void paintSprite(Graphics g);
   abstract public void updateState();

   public int getX()
   {
      return X;
   }

   public int getY()
   {
      return Y;
   }

   public void setLocation(int X,int Y)
   {
      this.X = X;
      this.Y = Y;
   }

   public int getWidth()
   {
      return width;
   }

   public int getHeight()
   {
      return height;
   }

   public void setSize(int width,int height)
   {
      this.width  = width;
      this.height = height;
   }

   public boolean canVisible()
   {
      return visible;
   }

   public void setVisible(boolean v)
   {
      visible = v;
   }

   public boolean canMove()
   {
      return active;
   }

   public void setMove(boolean m)
   {
      active = m;
   }
}

class ImageSprite extends SuperSprite   //圖像Sprite
{
   Image  SpriteImage;                  //Sprite本身的圖像
   Applet Game;                         //在繪制圖像時會用到
  
   public ImageSprite(Image SpriteImage,Applet Game)
   {
      this.SpriteImage   = SpriteImage;
      this.Game          = Game;   
            
      setLocation(0,0);                 //設定起始位置
      setVisible(true);                 //可見
      setMove(true);                    //可移動 
   }

   public void updateState()
   {
  }

   public void paintSprite(Graphics g)  //繪制Sprite
   {
      if(visible == true)      
         g.drawImage(SpriteImage,X,Y,Game);  //在最后一個參數中輸入Applet
   }
}

class BulletSprite extends ImageSprite  //子彈Sprite
{
   int AppletWidth,AppletHeight;

   public BulletSprite(Image bullet,Applet Game,int AppletWidth,
                       int AppletHeight)
   {
      super(bullet,Game);               //調用父類的創(chuàng)建方法

      this.AppletWidth  = AppletWidth;
      this.AppletHeight = AppletHeight;

      setVisible(false);               //不可見
      setMove(false);                  //不可移動
   }

   public void updateState()           //轉換子彈Sprite的狀態(tài)
   {
      if(active == true)
      {
         if(X > AppletWidth)           //當子彈穿過右邊界時
         {
            setVisible(false);         //設定子彈Sprite為不可見
            setMove(false);            //設定子彈Sprite為不可移動
         }
         else
            X = X + 10;                //向右移動20像素
      }
   }

   public void paintSprite(Graphics g) //繪制子彈Sprite
   {
      if(visible == true)
         g.drawImage(SpriteImage,X,Y,Game);
   }
}

public class Airplane extends Applet   //此為游戲主類
             implements Runnable,MouseListener,MouseMotionListener
{
   int          AppletWidth,AppletHeight,ImageWidth,ImageHeight,
                currentImage,mouseX,mouseY,X,Y;
   Image        background[],airplane,bullet,OffScreen;
   Random       R;
   Thread       newThread; 
   Graphics     drawOffScreen;
   MediaTracker MT;

   ImageSprite  airplaneSprite,BulletSprite;

   public void init()
   {
      addMouseListener(this);            //注冊事件處理方法
      addMouseMotionListener(this);   

      background   = new Image[5];
      MT           = new MediaTracker(this);
      R            = new Random();
      currentImage = 0;
      AppletWidth  = getSize().width;
      AppletHeight = getSize().height;

      //使用MediaTracker取得必要圖像
      for(int i=0;i<5;i++)
      {
         background[i] = getImage(getDocumentBase(),"Images/thunder" +
                                  i + ".gif");

         MT.addImage(background[i],0);
      }

      airplane = getImage(getDocumentBase(),"Images/airplane.gif");
      bullet   = getImage(getDocumentBase(),"Images/bullet.gif"); 
      MT.addImage(airplane,0); 
      MT.addImage(bullet,0);

      try
      {
         MT.waitForAll();
      }      
      catch(InterruptedException E){ }   //沒有進行異常處理

      ImageWidth     = airplane.getWidth(this);
      ImageHeight    = airplane.getHeight(this);

      //建立Sprite
      airplaneSprite = new ImageSprite(airplane,this);
      BulletSprite   = new BulletSprite(bullet,this,AppletWidth,
                                        AppletHeight);
 
      //建立次畫面
      OffScreen      = createImage(AppletWidth,AppletHeight);
      drawOffScreen  = OffScreen.getGraphics();
   }

   public void start()                    //start()方法  
   {
      newThread = new Thread(this);       //建立與啟動新線程
      newThread.start();
   }

   public void stop()                     //stop()方法
   {
      newThread = null;                   //將線程設為null
   }

   public void paint(Graphics g)
   {
      //只清除此部分區(qū)域的圖像
      drawOffScreen.clearRect(0,0,AppletWidth,AppletHeight);

      //注意繪制順序(Z-Order)
      drawOffScreen.drawImage(background[currentImage],0,0,this);
      airplaneSprite.paintSprite(drawOffScreen);
      BulletSprite.paintSprite(drawOffScreen);
           
      //將次畫面貼到主畫面上
      g.drawImage(OffScreen,0,0,this); 
   }
  
   public void update(Graphics g)         //update()方法
   {
      paint(g);                           //只單純調用paint()方法
   }

   public void run()
   {
      while(newThread != null)
      {
         repaint();                       //重繪圖像

         try
         {
            Thread.sleep(33);             //暫停33毫秒
         }
         catch(InterruptedException E){ }

         if(R.nextInt(10) < 1)            //轉換幀動畫
            currentImage = R.nextInt(5);

         BulletSprite.updateState();      //轉換子彈Sprite狀態(tài)
      }
   }

   //=====實作MouseListener界面=======================================
   public void mouseExited(MouseEvent e){}    //鼠標離開Component
   public void mouseClicked(MouseEvent e){}   //鼠標按鍵被按下后放開
    public void mouseReleased(MouseEvent e){} //鼠標按鍵放開
   
   public void mouseEntered(MouseEvent e)     //鼠標進入Component
   {
      mouseX = e.getX();
      mouseY = e.getY();

      //設定飛機的邊界動作
      if(mouseX < ImageWidth / 2)
         X = ImageWidth / 2;
      else if(mouseX > AppletWidth - (ImageWidth / 2))
         X = AppletWidth - (ImageWidth / 2);
      else
         X = mouseX;

      if(mouseY < ImageHeight / 2)
         Y = ImageHeight / 2;
      else if(mouseY > AppletHeight - (ImageHeight / 2))
         Y = AppletHeight - (ImageHeight / 2);
      else
         Y = mouseY;

      //設定飛機圖像的正確位置
      airplaneSprite.setLocation(X - (ImageWidth / 2),Y - (ImageHeight / 2));
   }

   public void mousePressed(MouseEvent e)     //鼠標按鍵被按下
   {
      //發(fā)射子彈
      if(BulletSprite.canVisible() == false && 
         BulletSprite.canMove() == false)
      {
         BulletSprite.setLocation(X + (ImageWidth / 2),Y);
         BulletSprite.setVisible(true);
         BulletSprite.setMove(true);
      }
   }
   
   //=====實作MouseMotionListener界面=================================
   public void mouseMoved(MouseEvent e)       //鼠標移動時
   {
      //移動飛機
      mouseX = e.getX();
      mouseY = e.getY();

      //設定飛機的邊界動作
      if(mouseX < ImageWidth / 2)
         X = ImageWidth / 2;
      else if(mouseX > AppletWidth - (ImageWidth / 2))
         X = AppletWidth - (ImageWidth / 2);
      else
         X = mouseX;

      if(mouseY < ImageHeight / 2)
         Y = ImageHeight / 2;
      else if(mouseY > AppletHeight - (ImageHeight / 2))
         Y = AppletHeight - (ImageHeight / 2);
      else
         Y = mouseY;

      //設定飛機圖像的正確位置
      airplaneSprite.setLocation(X - (ImageWidth / 2),Y - (ImageHeight / 2));  
   }  
 
   public void mouseDragged(MouseEvent e)     //鼠標拖曳時 
   {
   }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲美女免费视频| 亚洲免费在线观看视频| 欧美日韩在线电影| 欧美午夜精品理论片a级按摩| 国产精品一区在线| 精品在线一区二区三区| 久久99精品国产麻豆婷婷洗澡| 欧美日韩午夜影院| 欧美日韩你懂得| 91精品国产一区二区三区蜜臀| 免费久久99精品国产| 亚洲国产日韩在线一区模特| 一区二区三区.www| 久久国内精品视频| 国产传媒久久文化传媒| 不卡在线视频中文字幕| 日本韩国欧美在线| 欧美福利电影网| 久久综合成人精品亚洲另类欧美| 91福利社在线观看| 91精品久久久久久久99蜜桃| 7777精品伊人久久久大香线蕉超级流畅 | 亚洲一区二区三区国产| 亚洲午夜在线电影| 美女视频黄免费的久久| 高清不卡在线观看av| 91视视频在线观看入口直接观看www | 91啦中文在线观看| 777精品伊人久久久久大香线蕉| 国产福利91精品一区二区三区| 一区二区三区日韩| 久久99热这里只有精品| 国产丶欧美丶日本不卡视频| 色综合久久久久综合体桃花网| 国产精品99久久久久久有的能看| 亚洲一区在线观看免费| 蜜臀av一级做a爰片久久| 国产成人夜色高潮福利影视| 欧美三片在线视频观看| 中日韩av电影| 美腿丝袜一区二区三区| 91香蕉视频污在线| 久久久久久亚洲综合| 香蕉久久一区二区不卡无毒影院| 亚洲综合一区在线| 国产成a人亚洲| 欧美精品在线视频| 亚洲免费三区一区二区| 美女精品自拍一二三四| 在线这里只有精品| 国产欧美一区二区精品秋霞影院| 精品国产成人在线影院| 亚洲自拍偷拍图区| av一区二区三区在线| 久久久九九九九| 六月丁香婷婷久久| 884aa四虎影成人精品一区| 中文字幕在线观看一区| 激情综合色播五月| 51精品秘密在线观看| 亚洲午夜久久久久久久久电影网| 夜夜操天天操亚洲| 国产成人综合自拍| 久久婷婷成人综合色| 另类专区欧美蜜桃臀第一页| 91精品国产综合久久久蜜臀图片| 日韩欧美123| 视频一区中文字幕| 欧美系列一区二区| 亚洲超碰97人人做人人爱| 在线免费精品视频| 亚洲国产三级在线| 欧美性感一类影片在线播放| 亚洲三级免费观看| 91免费版在线| 亚洲电影在线免费观看| 欧美视频一区在线| 视频一区二区不卡| 91精品国产综合久久精品图片| 国产午夜精品一区二区三区四区| 国产精品卡一卡二| 一本久久a久久免费精品不卡| 7799精品视频| 久久国产成人午夜av影院| 亚洲精品在线电影| 成人av免费在线播放| 18成人在线观看| 欧美日韩另类一区| 日本成人中文字幕| 精品久久久久av影院| 国产精品自拍网站| 亚洲三级在线免费观看| 欧美日韩在线免费视频| 精品综合免费视频观看| 欧美激情中文不卡| 欧洲一区在线电影| 精品一区二区免费看| 国产亚洲短视频| 在线观看亚洲一区| 久久国产精品72免费观看| 国产精品久线在线观看| 欧美中文字幕一区| 免费人成精品欧美精品| 欧美激情一区三区| 欧美福利一区二区| 国产成人精品影视| 五月激情丁香一区二区三区| 精品剧情在线观看| 色婷婷亚洲精品| 久久99精品久久久| 夜夜精品视频一区二区 | 欧美日韩一级二级三级| 免费观看在线综合色| 一色桃子久久精品亚洲| 欧美精品xxxxbbbb| 成人aaaa免费全部观看| 免费成人美女在线观看.| 国产欧美中文在线| 欧美一二三四在线| 91精品91久久久中77777| 狠狠色丁香婷婷综合久久片| 亚洲自拍偷拍av| 国产精品灌醉下药二区| 日韩一区和二区| 欧美色国产精品| 91丨九色丨蝌蚪丨老版| 国产精品99久久久久| 天天综合天天综合色| 亚洲乱码国产乱码精品精小说| 成人免费电影视频| 久久99久久99| 日韩精品三区四区| 亚洲已满18点击进入久久| 国产欧美精品区一区二区三区 | 亚洲男人天堂av| 国产日韩欧美制服另类| 日韩一区二区三区免费看| 欧美性一二三区| 欧美色图一区二区三区| 91网站最新地址| 99久久99久久久精品齐齐| 精品一区二区三区欧美| 日韩不卡一区二区三区| 丝袜a∨在线一区二区三区不卡| 7777精品伊人久久久大香线蕉最新版| 天天av天天翘天天综合网| 亚洲免费在线播放| 一区二区三区四区精品在线视频| 91在线观看高清| 99久久国产综合精品麻豆| 高清不卡在线观看av| 懂色av一区二区三区蜜臀| 国内精品免费在线观看| 激情丁香综合五月| 国产精品一二三| 国产成人综合在线观看| 国产成人在线视频免费播放| 国产精一区二区三区| 国产精品1区2区3区在线观看| 亚洲男人天堂一区| 一区二区三区.www| 亚洲第一av色| 免费高清成人在线| 国内不卡的二区三区中文字幕| 久久久国产精品午夜一区ai换脸| www.亚洲免费av| 欧美亚洲国产bt| 欧美日本国产视频| 日韩三级中文字幕| 久久久久久影视| 亚洲麻豆国产自偷在线| 亚洲午夜激情网站| 麻豆成人久久精品二区三区小说| 亚洲男女毛片无遮挡| 丝袜亚洲另类欧美综合| 激情另类小说区图片区视频区| 一区二区三区精品视频在线| 亚洲va欧美va天堂v国产综合| 国产免费观看久久| 亚洲午夜一区二区| 狠狠色狠狠色合久久伊人| 国产白丝网站精品污在线入口| 视频一区国产视频| 成人污污视频在线观看| 欧美日韩一区高清| 国产午夜亚洲精品理论片色戒| 欧美精品自拍偷拍| 精品国产乱码91久久久久久网站| 欧美日韩高清在线播放| 日韩精品一区二区三区swag| 国产精品久久久久久一区二区三区| 欧美成人vr18sexvr| 国产精品久久毛片av大全日韩| 久久综合色婷婷| 亚洲综合在线观看视频| 久国产精品韩国三级视频| 91免费视频网址| 久久婷婷久久一区二区三区| 亚洲少妇中出一区| 国产精品18久久久久|