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

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

?? mangamecanvas.java~175~

?? 是男人就撐30秒!多么經典的游戲!受歡迎程度可想而知!希望大家能夠喜歡,對大家能夠有幫助!謝謝!!1
?? JAVA~175~
字號:
package man;

import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
import javax.microedition.lcdui.game.GameCanvas;

/**
 *
 */

public class ManGameCanvas extends GameCanvas
    implements Runnable, CommandListener {

  //--- 定義變量 ----------------------------------------------------------------
  private ManMIDlet manMIDlet;
  private Command Cmdstart, Cmdrestart;   // 開始、重新開始按鍵
  private int SWidth, SHeight;            // 屏幕寬度和高度
  private int KeyState;                   // 當前按鍵狀態
  private Graphics ManGraphics;           // 定義屏幕的畫布
  private TiledLayer TLBackground;        // 平鋪層對象
  private Sprite SpPlane;                 // 飛機圖象
  private ManBullets MBbullets;           // 子彈圖象
  private NumImgTools TimeFont;           // 時間文字
  public Sprite SpExplosion;              // 飛機爆炸效果圖象
  private Sprite SpBomb;                  // 炸彈爆炸效果圖片
  private Image ImgBombIcon;              // 炸彈圖標
  private NumImgTools BombFont;           // 炸彈個數文字
  private int BombCount;                  // 炸彈個數
  private boolean useBomb;                // 是否使用炸彈
  private Thread ThRunGame;               // 線程
  private boolean running;                // 當前運行狀態
  public boolean gameover;                // 程序是否已經結束
  private long GameStartTime;             // 游戲開始時間
  private int ExplosionFrame;             // 飛機爆炸幀數控制累加器
  private int BombFrame;                  // 炸彈爆炸幀數控制累加器
  int a;

  //--- 構造函數 ----------------------------------------------------------------
  protected ManGameCanvas(ManMIDlet manMIDlet) {
    super(false);   // 調用父類的構造方法,必須這樣,否則無法編譯
    this.manMIDlet = manMIDlet;

    // 添加按鍵,并開啟監聽
    addCommand(new Command("退出", Command.EXIT, 1));
    addCommand(Cmdstart = new Command("開始", Command.OK, 1));
    setCommandListener(this);

    SWidth = getWidth();     // 獲得設備屏幕寬度
    SHeight = getHeight();   // 獲得設備屏幕高度
    running = false;         // 當前運行狀態
    ThRunGame = null;        // 線程初始化

    ManGraphics = getGraphics();  // 獲得當前屏幕的畫布

    //--- 初始化背景圖象 ---
    Image img = ImageTools.getImage("/pic/back_water.png");
    int backcols = SWidth / img.getWidth() + 1; // 計算橫向需要多少圖片
    int backrows = SHeight / img.getHeight() + 1;  // 計算縱向需要多少圖片
    // 初始化平鋪層對象,將圖象平鋪顯示
    TLBackground = new TiledLayer(backcols, backrows, img, img.getWidth(), img.getHeight());
    // 循環平鋪操作,x,y為相對坐標,???setCell中的1不知是什么意思???
    for (int i = 0; i < backcols * backrows; i++)
      TLBackground.setCell(i % backcols, i / backcols, 1);

    //--- 初始化小飛機圖象 ---
    img = ImageTools.getImage("/pic/MyPlaneFrames.png");
    SpPlane = new Sprite(img, 24, 24);

    //--- 初始化記時數字圖象 ---
    img = ImageTools.getImage("/pic/b_number.png");
    TimeFont = new NumImgTools(ManGraphics, img, 10, 15);

    //--- 初始化子彈圖象 ---
    img = ImageTools.getImage("/pic/bullet.png");
    MBbullets = new ManBullets(this, img, SWidth, SHeight);

    //--- 初始化飛機爆炸效果圖片 ---
    img = ImageTools.getImage("/pic/explosion.png");
    SpExplosion = new Sprite(img, 32, 32);

    //--- 初始化炸彈爆炸效果圖片 ---
    img = ImageTools.getImage("/pic/bomb.png");
    SpBomb = new Sprite(img, 65, 65);

    //--- 初始化炸彈圖標 ---
    ImgBombIcon = ImageTools.getImage("/pic/bomb_icon.png");

    //--- 初始化記時數字圖象 ---
    img = ImageTools.getImage("/pic/s_number.png");
    BombFont = new NumImgTools(ManGraphics, img, 5, 7);
  }

  //--- 線程主運行 --------------------------------------------------------------
  public void run(){
    long st = 0, et = 0, diff = 0;
    int GameTime = 0, TempTime = 0;
    int rate = 50;  // 16-17 幀/每妙
    while (running) {
      st = System.currentTimeMillis();

      ManGraphics.setColor(0, 0, 0);   // 清空屏幕
      ManGraphics.fillRect(0, 0, SWidth, SHeight);

      TLBackground.paint(ManGraphics);   // 畫出背景圖象

      if (!gameover) {
        SpPlane.paint(ManGraphics); // 畫出飛機圖象
        MBbullets.paint(ManGraphics, SpPlane.getX(), SpPlane.getY());  // 畫出子彈
        GameKeyInput(); // 游戲操作
        // 獲得游戲時間
        TempTime = (int)(System.currentTimeMillis() - GameStartTime) / 1000;
        if (GameTime != TempTime) {
          GameTime = TempTime;
          // 每隔20秒獎勵一個炸彈
          if (GameTime % 20 == 0 && GameTime != 0) ++BombCount;
        }
        if (GameTime == 99) {   // 若游戲時間達到99秒,強行退出游戲
          ExplosionFrame = 3;
          gameover = true;
        }
        if (useBomb) {   // 若使用炸彈,顯示爆炸效果
          if (BombFrame < 6) {
            SpBomb.setFrame(++BombFrame);
            SpBomb.paint(ManGraphics);
            MBbullets.BombBullets(SpPlane.getX(), SpPlane.getY());
          }
          else useBomb = false;
        }
      }
      // 如果游戲已經結束
      else {
        if (ExplosionFrame < 3) {   // 顯示爆炸效果
          SpExplosion.setFrame(++ExplosionFrame);
          SpExplosion.paint(ManGraphics);
        }
        else {   // 顯示評語
          String GameOverStr;
          if (GameTime < 10) GameOverStr = "你是在用腳玩嗎?";
          else if (GameTime < 16) GameOverStr = "再來一次,你能做到!";
          else if (GameTime < 20) GameOverStr = "同情你,再來一次!";
          else if (GameTime < 25) GameOverStr = "非常好,你是一個真正的男人!";
          else if (GameTime < 30) GameOverStr = "你是玩這個游戲的天才!";
          else if (GameTime < 40) GameOverStr = "真不敢相信,這個游戲難道是你做的?";
          else if (GameTime < 99) GameOverStr = "噢,我的上帝!你是人類嗎?";
          else GameOverStr = "我很遺憾,你可以不用再完這個游戲了!";

          ManGraphics.setColor(255,255,255);
          ManGraphics.drawString(GameOverStr, 5, 25, ManGraphics.LEFT | ManGraphics.TOP);
        }
      }
      // 畫出記時文字
      TimeFont.drawNums(GameTime, (SWidth - 14 * 2) / 2, 10, 2);
      // 畫出炸彈圖標
      ManGraphics.drawImage(ImgBombIcon, 0, SHeight - 1, ManGraphics.BOTTOM | ManGraphics.LEFT);
      // 畫出炸彈個數文字
      BombFont.drawNum(BombCount, ImgBombIcon.getWidth() + 1, SHeight - 8);
    ManGraphics.drawString(String.valueOf(a), 5, 50, ManGraphics.LEFT | ManGraphics.TOP);

      flushGraphics();   // 刷新圖象顯示,沒這句不顯示圖片

      et = System.currentTimeMillis();
      // 不滿足幀數要求,暫停線程至要求幀數
      diff = et - st;
      if (diff < rate) {
        try {
          Thread.sleep(rate - diff);
        }
        catch (InterruptedException ex) {
          System.out.println(ex);
        }
      }
    }
  }

  //--- 監聽按鍵 ----------------------------------------------------------------
  public void commandAction(Command command, Displayable displayable) {
    // 退出操作
    if (command.getCommandType() == Command.EXIT) {
      if (running)   // 結束線程
        running = false;
      manMIDlet.quitApp();
    }
    // 開始操作
    else if (command == Cmdstart) {
      if (!running) {
        running = true;
        GameInit();   // 游戲初始化
        ThRunGame = new Thread(this);   // 初始化線程
        ThRunGame.start();
      }
      removeCommand(Cmdstart);
      addCommand(Cmdrestart = new Command("重新開始", Command.OK, 1));
    }
    // 重新開始操作
    else if (command == Cmdrestart) {
      GameInit();
    }
  }

  //--- 游戲初始化 --------------------------------------------------------------
  private void GameInit() {
    gameover = false;
    // 初始化飛機圖象
    SpPlane.setFrame(0);
    SpPlane.setPosition((SWidth - SpPlane.getWidth()) / 2,
                        (SHeight - SpPlane.getHeight()) / 2);

    MBbullets.InitBulletsLocus();

    GameStartTime = System.currentTimeMillis();

    ExplosionFrame = -1;

    BombCount = 3;

    useBomb = false;
  }


  //--- 游戲操作 ----------------------------------------------------------------
  private void GameKeyInput() {
    SpPlane.setFrame(0);
    KeyState = getKeyStates();   // 獲得當前按鍵狀態
    // 根據按鍵狀態,飛機圖象做相對移動,并判斷是否超出屏幕邊界
    if ((KeyState & UP_PRESSED) != 0) {      // 上
      if (SpPlane.getY() - 3 < 0)
        SpPlane.move(0, 0 - SpPlane.getY());
      else
        SpPlane.move(0, -3);
      SpPlane.setFrame(0);
    }
    if ((KeyState & DOWN_PRESSED) != 0) {    // 下
      if (SpPlane.getY() + 3 + SpPlane.getHeight() > SHeight)
        SpPlane.move(0, SHeight - SpPlane.getY() - SpPlane.getHeight());
      else
        SpPlane.move(0, 3);
      SpPlane.setFrame(0);
    }
    if ((KeyState & LEFT_PRESSED) != 0) {    // 左
      if (SpPlane.getX() - 3 < 0)
        SpPlane.move(0 - SpPlane.getX(), 0);
      else
        SpPlane.move(-3, 0);
      SpPlane.setFrame(1);
    }
    if ((KeyState & RIGHT_PRESSED) != 0) {   // 右
      if (SpPlane.getX() + 3 + SpPlane.getWidth() > SWidth)
        SpPlane.move(SWidth - SpPlane.getX() - SpPlane.getWidth(), 0);
      else
        SpPlane.move(3, 0);
      SpPlane.setFrame(2);
    }
    if ((KeyState & 4096) != 0) {            // 中
      if (!useBomb && BombCount > 0) {
        BombCount--;
        SpBomb.setPosition(SpPlane.getX() - 20, SpPlane.getY() - 20);
        useBomb = true;
        BombFrame = -1;
      }
    }
  }

  protected void keyPressed(int key) {
    a = key;
    System.out.println(key);
    //repaint();
  }

 /* public void paint(Graphics graphics) {
    graphics.drawString(String.valueOf(a), 5, 100, ManGraphics.LEFT | ManGraphics.TOP);
  }*/

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线一区二区视频| 亚洲一卡二卡三卡四卡五卡| 欧美日韩午夜影院| 欧美中文字幕一区二区三区亚洲| 喷水一区二区三区| 欧美一二三四在线| 天天影视涩香欲综合网| 亚洲综合成人在线| 天天色 色综合| 日日噜噜夜夜狠狠视频欧美人| 一区二区三区丝袜| 五月婷婷激情综合网| 五月激情综合网| 日本不卡视频在线观看| 久久精品99国产精品日本| 韩国成人福利片在线播放| 国产一区二区在线看| 高清视频一区二区| 在线视频综合导航| 这里只有精品视频在线观看| 日韩欧美一区二区视频| 久久精品一区二区三区av| 中文字幕免费不卡在线| 一区二区三区不卡视频| 欧美aaaaa成人免费观看视频| 寂寞少妇一区二区三区| 白白色亚洲国产精品| 欧美午夜一区二区三区 | 日韩欧美在线1卡| 精品久久久久香蕉网| 中文字幕中文字幕一区| 午夜精品免费在线观看| 国产一区二区视频在线播放| 96av麻豆蜜桃一区二区| 91精品国产欧美一区二区成人| 久久婷婷综合激情| 亚洲综合视频在线观看| 精品亚洲成a人| 91福利国产精品| 久久蜜桃av一区二区天堂 | 91福利资源站| 久久亚洲一区二区三区明星换脸| 亚洲色图.com| 国产一区二区三区四区在线观看| 91老师国产黑色丝袜在线| 精品入口麻豆88视频| 亚洲精品视频在线观看网站| 狠狠色丁香久久婷婷综| 欧美日韩亚洲另类| 国产精品免费久久| 国内精品伊人久久久久av影院| 色综合天天综合给合国产| 久久影视一区二区| 日本最新不卡在线| 日本道色综合久久| 中文字幕免费一区| 国产又粗又猛又爽又黄91精品| 欧美日韩综合不卡| 亚洲免费在线观看视频| 波多野结衣欧美| 久久伊人蜜桃av一区二区| 免费一级片91| 欧美男同性恋视频网站| 亚洲免费观看高清| 一本到不卡精品视频在线观看| 国产调教视频一区| 韩国欧美一区二区| 日韩精品一区二区三区中文精品| 一区二区三区在线观看视频| 成人av电影在线网| 国产精品短视频| 成人av网站在线观看免费| 国产欧美日韩卡一| 国产精品一区二区三区乱码| 日韩免费电影一区| 久久99精品国产麻豆不卡| 91麻豆精品国产自产在线观看一区 | 午夜精品123| 91成人网在线| 亚洲一区二区偷拍精品| 在线观看亚洲精品视频| 一区二区三区欧美久久| 色成人在线视频| 亚洲国产精品尤物yw在线观看| 91久久精品国产91性色tv | 美腿丝袜亚洲一区| 精品美女一区二区三区| 国产在线一区二区| 欧美激情一区二区三区蜜桃视频| 国产激情视频一区二区在线观看| 久久精品夜色噜噜亚洲a∨| 成人污视频在线观看| **网站欧美大片在线观看| 91国产丝袜在线播放| 偷拍日韩校园综合在线| 日韩欧美亚洲国产另类| 国产盗摄精品一区二区三区在线 | 欧美精选午夜久久久乱码6080| 午夜视频一区二区| 26uuu国产一区二区三区| av激情综合网| 日韩专区在线视频| 久久青草欧美一区二区三区| 一本色道久久加勒比精品| 丝袜诱惑制服诱惑色一区在线观看| 91精品国产91久久综合桃花| 国产精品影视在线| 一区二区三区国产精品| 欧美本精品男人aⅴ天堂| 成人综合婷婷国产精品久久| 亚洲精品免费在线播放| 精品免费国产一区二区三区四区| 成人ar影院免费观看视频| 性做久久久久久免费观看| 久久综合999| 欧美日韩成人综合在线一区二区| 国产原创一区二区三区| 亚洲国产日韩a在线播放| 国产校园另类小说区| 精品视频1区2区| 成人黄色国产精品网站大全在线免费观看 | 欧美一级一区二区| 成人精品一区二区三区四区| 亚洲成人午夜电影| 国产精品福利一区二区三区| 欧美一级在线视频| 欧美天堂一区二区三区| 成人教育av在线| 狠狠色综合日日| 天天影视色香欲综合网老头| 最新久久zyz资源站| 久久精品综合网| 精品国产一区二区三区不卡| 欧美亚洲高清一区二区三区不卡| 国产sm精品调教视频网站| 美女久久久精品| 婷婷亚洲久悠悠色悠在线播放| 国产精品久久久久久一区二区三区| 日韩免费一区二区| 欧美剧在线免费观看网站| 91福利小视频| 91美女精品福利| proumb性欧美在线观看| 国产一区二区三区最好精华液| 日韩av中文字幕一区二区| 亚洲v日本v欧美v久久精品| 一区二区三区色| 亚洲免费观看高清完整版在线观看 | 久久久www成人免费毛片麻豆| 欧美日韩另类一区| 欧洲一区二区三区在线| 色婷婷亚洲综合| 91黄色小视频| 欧美中文一区二区三区| 在线观看亚洲精品| 欧美日韩情趣电影| 51精品国自产在线| 欧美成人在线直播| 欧美精品一区二区三区蜜臀| 精品国产一区久久| 久久蜜桃香蕉精品一区二区三区| 26uuu久久天堂性欧美| 久久久久久久久免费| 中文字幕欧美激情| 亚洲免费av高清| 五月婷婷激情综合| 蜜臀久久99精品久久久久久9| 麻豆一区二区三区| 国产麻豆欧美日韩一区| 成人精品在线视频观看| 日本韩国精品一区二区在线观看| 欧美视频你懂的| 日韩欧美亚洲另类制服综合在线 | 色婷婷激情久久| 欧美精选一区二区| 久久人人爽爽爽人久久久| 国产精品乱人伦| 亚洲国产欧美一区二区三区丁香婷| 亚洲一区二区三区影院| 久久精品国产亚洲5555| 成人综合日日夜夜| 51精品视频一区二区三区| 国产婷婷色一区二区三区| 亚洲精品高清视频在线观看| 五月开心婷婷久久| 成人免费视频播放| 欧美精品视频www在线观看| 精品国内二区三区| 亚洲最快最全在线视频| 精品亚洲porn| 日本道色综合久久| 精品99一区二区三区| 一区二区三区欧美日| 精品无码三级在线观看视频| 色偷偷久久一区二区三区| 欧美成人性战久久| 亚洲国产精品一区二区www在线| 韩国一区二区视频| 欧美精品电影在线播放| 日本一区二区综合亚洲|