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

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

?? mangamecanvas.java~174~

?? 是男人就撐30秒!多么經典的游戲!受歡迎程度可想而知!希望大家能夠喜歡,對大家能夠有幫助!謝謝!!1
?? JAVA~174~
字號:
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(true);   // 調用父類的構造方法,必須這樣,否則無法編譯
    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一区二区三区免费野_久草精品视频
粉嫩aⅴ一区二区三区四区 | 久久国产乱子精品免费女| 国产欧美一区二区精品性| 日韩一级欧美一级| 日韩一区二区三区电影 | 欧美精品一区二区久久久| 欧美在线观看视频在线| 色偷偷久久一区二区三区| 一本到不卡精品视频在线观看| 成人高清免费观看| 99久久伊人网影院| 日本国产一区二区| 欧美喷水一区二区| 日韩免费观看2025年上映的电影 | 中文一区二区完整视频在线观看 | 日本精品免费观看高清观看| 97成人超碰视| 欧美午夜不卡视频| 91精品在线观看入口| 日韩欧美一二三| 久久久av毛片精品| 亚洲欧洲av一区二区三区久久| 综合亚洲深深色噜噜狠狠网站| 亚洲女人的天堂| 日韩电影在线一区二区| 国产精品一区二区在线看| 9i在线看片成人免费| 精品视频在线免费观看| 精品999在线播放| 国产精品久久久久久久久快鸭 | 在线精品视频免费观看| 欧美一区二区三区影视| 国产偷国产偷精品高清尤物| 亚洲女子a中天字幕| 久久精品国产99| 91色九色蝌蚪| 欧美一级欧美一级在线播放| 中文字幕免费在线观看视频一区| 亚洲国产欧美在线| 国产自产高清不卡| 在线观看www91| 久久久99久久精品欧美| 午夜欧美电影在线观看| 国产99久久久精品| 欧美一区二区三区视频| 亚洲三级在线播放| 国产一区美女在线| 在线观看精品一区| 国产精品青草久久| 日本视频在线一区| 91久久国产最好的精华液| 久久综合精品国产一区二区三区| 亚洲国产成人av| av不卡在线播放| 久久久www成人免费无遮挡大片| 亚洲在线观看免费视频| 东方欧美亚洲色图在线| 日韩欧美国产精品一区| 亚洲风情在线资源站| 99re免费视频精品全部| 久久久综合视频| 裸体在线国模精品偷拍| 欧美人妇做爰xxxⅹ性高电影 | 91精品国产aⅴ一区二区| 亚洲色图丝袜美腿| 成人av第一页| 久久久国产综合精品女国产盗摄| 麻豆久久一区二区| 91麻豆精品国产91久久久 | 婷婷开心激情综合| 欧洲人成人精品| 亚洲卡通动漫在线| eeuss国产一区二区三区| 国产日韩在线不卡| 国产91丝袜在线播放九色| 精品99999| 精品一区二区三区免费播放| 日韩女同互慰一区二区| 美腿丝袜亚洲色图| 337p粉嫩大胆噜噜噜噜噜91av| 日本va欧美va欧美va精品| 日韩免费福利电影在线观看| 日韩成人一级大片| 日韩午夜在线观看| 精品一区二区免费| 久久久精品蜜桃| www.在线成人| 有坂深雪av一区二区精品| 欧美系列亚洲系列| 日本91福利区| 久久久久高清精品| 色综合久久中文综合久久97| 一区二区三区中文免费| 欧美日韩一区高清| 精品一区二区三区av| 国产精品高清亚洲| 欧美在线视频全部完| 美女mm1313爽爽久久久蜜臀| 国产日韩欧美综合一区| 一本高清dvd不卡在线观看| 午夜精品福利一区二区三区蜜桃| 7878成人国产在线观看| 精品亚洲porn| 亚洲欧美乱综合| 日韩精品一区二区三区视频在线观看 | 国产精品国产馆在线真实露脸| 欧美亚洲另类激情小说| 狠狠久久亚洲欧美| 亚洲人成影院在线观看| 日韩视频一区二区在线观看| 丁香婷婷综合激情五月色| 亚洲风情在线资源站| 久久久www成人免费毛片麻豆| 在线精品视频免费观看| 国产乱码精品一区二区三| 亚洲综合一区二区| 久久久久99精品国产片| 欧美日韩国产高清一区二区 | 精品国产乱码久久久久久免费| 成人性生交大片免费看视频在线| 一二三区精品视频| 久久久久久久久久久99999| 欧美日韩在线亚洲一区蜜芽| 国产成人精品一区二区三区网站观看| 亚洲高清视频中文字幕| 中文字幕日本乱码精品影院| 日韩精品一区二| 欧美日韩视频在线第一区| voyeur盗摄精品| 国产麻豆午夜三级精品| 日韩中文欧美在线| 一区二区三区中文字幕在线观看| 久久久午夜精品| 精品免费国产二区三区| 欧美区一区二区三区| 在线免费观看不卡av| 91色|porny| av亚洲精华国产精华| 国产剧情在线观看一区二区| 奇米影视一区二区三区小说| 亚洲一区二区三区四区五区中文| 一区精品在线播放| 国产日韩v精品一区二区| 欧美变态tickling挠脚心| 欧美美女直播网站| 欧美中文字幕亚洲一区二区va在线 | 亚洲另类在线视频| 国产精品乱码一区二区三区软件| 精品国产一区二区三区av性色 | 国产精品久久久久天堂| 国产亚洲综合色| 久久久欧美精品sm网站| 久久久久久久综合日本| 欧美精品一区二区三区视频| 日韩一区二区精品在线观看| 91精品国产欧美一区二区成人 | 一区二区三区在线看| 亚洲日韩欧美一区二区在线| 国产精品色哟哟| 日韩伦理免费电影| 中文字幕视频一区二区三区久| 国产精品久久久久久久久久免费看 | 不卡一区二区三区四区| www.亚洲色图| 欧美自拍偷拍午夜视频| 91精品婷婷国产综合久久竹菊| 欧美人伦禁忌dvd放荡欲情| 日韩一二三四区| 国产三级精品三级在线专区| 国产精品久久久久久久久免费桃花 | 亚洲欧美日韩中文播放| 一区二区三区中文字幕电影| 五月婷婷激情综合| 蜜臀av在线播放一区二区三区| 日本va欧美va精品发布| 国产精品亚洲一区二区三区在线| 国产999精品久久| 色婷婷av一区| 欧美一区二区三区视频免费| 久久久久久黄色| 一区二区免费看| 久久草av在线| 99国产精品视频免费观看| 8v天堂国产在线一区二区| 国产午夜精品一区二区三区四区| 伊人开心综合网| 精品一二三四在线| 色综合久久久久久久| 91精品久久久久久蜜臀| 国产精品女主播av| 亚洲18女电影在线观看| 成人在线视频一区二区| 欧美日产国产精品| 欧美国产一区视频在线观看| 亚洲综合久久久| 国产成人aaa| 91精品国产综合久久精品app| 欧美国产精品劲爆| 免费观看在线综合| 91久久精品一区二区二区|