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

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

?? playscreen.java

?? 基于java的一款游戲的故事。基于java的一款游戲的故事。基于java的一款游戲的故事。
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
/*
 * Created on 2006-5-20
 *
 * 主游戲界面
 */
package com.thinkenjoy.feitian.screen;

import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import com.thinkenjoy.control.ActorCanvas;
import com.thinkenjoy.control.Control;
import com.thinkenjoy.control.KeyMap;
import com.thinkenjoy.control.ThreadCanvas;
import com.thinkenjoy.feitian.Enemy;
import com.thinkenjoy.feitian.MovingObject;
import com.thinkenjoy.feitian.MovingObjectPool;
import com.thinkenjoy.feitian.Player;
import com.thinkenjoy.feitian.Stage;
import com.thinkenjoy.tools.ImageSet;
import com.thinkenjoy.tools.Tools;
import com.thinkenjoy.feitian.*;

/**
 * 主游戲界面
 */
public class PlayScreen extends ActorCanvas {
  public static int pass = 0;

  public static boolean hasPass = false;

  public static final short PLAY_START_Y = 16;

  private static final short BOMB_POINT_START_X = 4;
  private static final short BOMB_POINT_START_Y = 183;
  private static final short BOMB_START_X = 5;

  //#if NOK_7210 || NOK_7260
  //# public static final short PLAY_END_Y = 120;
  //# private static final short BOMB_START_Y = 115;
  //#else
    //#if NOK_7370 || MOT_E2
    //# public static final short PLAY_END_Y = 315;
    //# private static final short BOMB_START_Y = 300;
    //#else
      //#if NOK_6101
      //# public static final short PLAY_END_Y = 155;
      //# private static final short BOMB_START_Y = 150;
      //#else
      public static final short PLAY_END_Y = 191;
      private static final short BOMB_START_Y = 180;
      //#endif
    //#endif
  //#endif
  public static final short PLAY_SCREEN_HEIGHT = 176;

  private static final short BOMB_WIDTH = 11;

  private static final short BOMB_POINT_WIDTH = 1;

  private static final short BOMB_POINT_SEPERATE = 2;

  private static final short BOMB_POINT_HEIGHT = 8;

  private static final byte START_STATE = 0;

  private static final byte PLAY_STATE = 1;

  public static byte state;

  private int stageNumStartX;
  private int stageNumStartY;
  private int changeColorDelay;

  private String confirmButton;

  private byte fontHeight;

  private short buttonWidth;

  Image treasureEffect;

  public static final int NULL = -1;

  public static final int REFRESH_RATE = 50;

  public static final int MAX_ENEMY_NUM = 20;

  public static final int MAX_TOP_SCORE = 8;

  /**
   * 寶物的索引值
   */

  /**
   * 小血,10分
   */
  static final int TREASURE_01 = 0x06;

  /**
   * 大血,30分
   */
  static final int TREASURE_02 = 0x07;

  /**
   * 火力卷軸,攻擊強度增加
   */
  static final int TREASURE_03 = 0x08;

  /**
   * 立即獲得一顆炸彈
   */
  static final int TREASURE_04 = 0x09;

  private boolean isKeyUp;

  private boolean isKeyDown;

  private boolean isKeyLeft;

  private boolean isKeyRight;

  private boolean isKeyFire;

  private static PlayScreen instance;

  private ImageSet treasureImageSet;

  private static Player player;

  private static Enemy boss;

  public Stage stage;

  private Image bombImage;
  private Image ui;

  private MovingObjectPool treasurePool; //v

  public  static MovingObjectPool bulletPool;      //s
  public  MovingObjectPool enemyPool;      //t
  public  static MovingObjectPool enemyBulletPool;      //u

  private int delayChangeAuto;


  /**
   * 初始化基本對象,為子彈,敵人生成對象池
   */
  private PlayScreen() {
    changeColorDelay = 3;
    confirmButton = "確定";
    fontHeight = (byte) Font.getDefaultFont().getHeight();

    buttonWidth = (short)Font.getDefaultFont().stringWidth(confirmButton);

    bombImage = Tools.getImage("images/stuffs/bomb");
    ui = Tools.getImage("images/title/ui");

    treasureImageSet = new ImageSet(4);
    //#if NOK_QD
    //# for(int i = 0;i<4;i++) //寶物
    //# {
      //# Image[] treasureImage = new Image[2];
      //# for(int j = 0; j<2 ;j++)
      //# {
        //# treasureImage[j] = Tools.getImage("images/stuffs/treasure"+(i*2+j));
      //# }
      //# treasureImageSet.addState(treasureImage,100);
    //# }
    //#else
    Image treasureImage = Tools.getImage("images/stuffs/treasure");
      //#if NOK_7210 || NOK_7260 || NOK_6101
      //# treasureImageSet.addState(ImageSet.extractFrames(treasureImage,0,0,2,1,6,12),100);
      //# treasureImageSet.addState(ImageSet.extractFrames(treasureImage,0,13,2,1,8,11),100);
      //# treasureImageSet.addState(ImageSet.extractFrames(treasureImage,0,24,2,1,12,8),100);
      //# treasureImageSet.addState(ImageSet.extractFrames(treasureImage,0,32,2,1,9,11),100);
      //#else
      treasureImageSet.addState(ImageSet.extractFrames(treasureImage,0,0,2,1,8,14),100);
      treasureImageSet.addState(ImageSet.extractFrames(treasureImage,0,14,2,1,10,15),100);
      treasureImageSet.addState(ImageSet.extractFrames(treasureImage,0,29,2,1,12,17),100);
      treasureImageSet.addState(ImageSet.extractFrames(treasureImage,0,46,2,1,13,12),100);
      //#endif
      //#endif
/*

*/
//player = new Player(Control.currentPlayer, 1, 5, 5, -30, 89, 34, 25);
    //TREASURE POOL

    MovingObject treasure[] = new MovingObject[10]; //寶物對象池
    for (int i = 0; i < treasure.length; i++) {
      treasure[i] = new MovingObject(0, 80, 5, 5, 171, 89, 10, 10);
      treasure[i].imageSet = treasureImageSet;
    }
    treasurePool = new MovingObjectPool(treasure);

    Enemy[] mo_1 = new Enemy[20]; //敵人對象池
    for (int i_2 = 0; i_2 < mo_1.length; ++i_2) {
      mo_1[i_2] = new Enemy(0, 0, 0, 0, 0, 0, 0, 0);
    }
    enemyPool = new MovingObjectPool(mo_1);
    stage = new Stage(1, "images/stage/", enemyPool, boss, treasurePool);
    MovingObject[] mo_2 = new MovingObject[15]; //子彈對象池
    for (int i_3 = 0; i_3 < mo_2.length; ++i_3) {
      mo_2[i_3] = new MovingObject(0, 0, 0, 0, 0, 0, 0, 0);
    }
    bulletPool = new MovingObjectPool(mo_2);

    MovingObject[] mo_3 = new MovingObject[35];
    for (int i_4 = 0; i_4 < mo_3.length; ++i_4) {
      mo_3[i_4] = new MovingObject(0, 0, 0, 0, 0, 0, 0, 0);
    }
    enemyBulletPool = new MovingObjectPool(mo_3);
    System.gc();
  }
  /**
   * 產生自我的對象
   * @return
   */
  public static PlayScreen getInstance() {
    if (instance == null) {
      instance = new PlayScreen();
    }
    return instance;
  }

  /**
   * 生成玩家,BOSS的對象
   *
   */
  public static void initialNewCase() {
    player = new Player(Control.currentPlayer, 1, 5, 5, -30, 89, 34, 25);
    boss = new Enemy(15, 1, 4, 4, 166, 30 + 3, 22, 16);
    boss.dead();
  }

  public void initial() {
    state = START_STATE;
    player.initial(Control.currentPlayer + 1);
  }

  /**
   * 清空緩沖池里面正在用的數據
   *
   */
  private void clearPool() {

    //寶物
    MovingObject treasure = getTreasurePool().getFirstUsed();
    while (treasure != null) {
      MovingObject next = treasure.getNextLinked();
      releaseTreasure(treasure);
      treasure = next;
    }
    //玩家子彈
    MovingObject bullet = getBulletPool().getFirstUsed();
    while(bullet != null)
    {
      MovingObject next = bullet.getNextLinked();
      releaseBullet(bullet);
      bullet = next;
    }
    MovingObject eBullet = getEnemyBulletPool().getFirstUsed();
    while(eBullet != null)
    {
      MovingObject next = eBullet.getNextLinked();
      releaseEnemyBullet(eBullet);
      eBullet = next;
    }
    //敵人
    MovingObject enemy = getEnemyPool().getFirstUsed();
    while(enemy != null)
    {
      MovingObject next = enemy.getNextLinked();
      releaseEnemy(enemy);
      enemy = next;
    }
  }

  /**
   * 刷新
   *
   */
  public void cycle() {
    if (state == PLAY_STATE) {
      if (stage.canChangeStage()) {
        if (Control.getStage() + 1 > Stage.MAX_STAGE) {
          Control.setVictory(true);
//				Control.show(Control.GAME_END_STAGE);
        } else {
          clearPool();
          Control.setStage(Control.getStage() + 1);
          state = START_STATE;
//				Control.playGameMusic();
        }
      } else {
        if (player.getLife() <= 0) {
          if (Control.getStage() == 4) {
            Control.setVictory(true);
          } else {
            Control.setVictory(false);
          }
//				Control.show(Control.GAME_END_STAGE);
        } else {
          playGameStage();
        }
      }
    }
  }

  /**
   * 繪制住界面與UI,以及敵人,子彈和玩家
   */
  public void paint(Graphics g) {
    switch (state) {
    case START_STATE:
      g.setColor(0);
      g.fillRect(0,0,ThreadCanvas.SCREEN_WIDTH,ThreadCanvas.SCREEN_HEIGHT);
      g.setColor(56576);

      stageNumStartX = ThreadCanvas.SCREEN_WIDTH / 2 - 18;
      stageNumStartY = ThreadCanvas.SCREEN_HEIGHT / 2 - 24;

      switch (Control.getStage()) {
      case 1: // '\001'
        g.drawString("第一關", stageNumStartX, stageNumStartY, 20);
        g.drawString("撒哈拉沙漠(白日)", stageNumStartX - 40, stageNumStartY + 30, 20);
        break;
      case 2:
        g.drawString("第二關", stageNumStartX, stageNumStartY, 20);
        g.drawString("撒哈拉沙漠(夜晚)", stageNumStartX - 40, stageNumStartY + 30, 20);

        break;
      case 3:
        g.drawString("第三關", stageNumStartX, stageNumStartY, 20);
        g.drawString("魔神廢墟(外城)", stageNumStartX - 40, stageNumStartY + 30, 20);

        break;
      case 4:
        g.drawString("第四關", stageNumStartX, stageNumStartY, 20);
        g.drawString("魔神廢墟(內城)", stageNumStartX - 40, stageNumStartY + 30, 20);

        break;
      }
      if (--changeColorDelay <= 0) {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品一区二区久久久| 久久蜜桃av一区精品变态类天堂| 99久久综合99久久综合网站| 岛国精品在线观看| 日本久久一区二区三区| 91精品国产欧美日韩| 久久精品亚洲精品国产欧美 | 自拍av一区二区三区| 日本sm残虐另类| 94-欧美-setu| 日韩一区二区三区四区五区六区 | 亚洲日本电影在线| 久久99精品一区二区三区| av一二三不卡影片| 26uuu久久天堂性欧美| 亚洲欧洲日韩在线| 国产91精品久久久久久久网曝门| 欧美日韩卡一卡二| 中文字幕在线观看一区二区| 美洲天堂一区二卡三卡四卡视频 | 亚洲欧美日韩一区二区三区在线观看 | 一区二区在线观看视频| 九色综合国产一区二区三区| 欧美日韩另类一区| 亚洲手机成人高清视频| 国产传媒一区在线| 精品处破学生在线二十三| 日韩黄色免费电影| 91精品久久久久久久久99蜜臂| 亚洲自拍偷拍av| 欧美无人高清视频在线观看| 亚洲一区二区三区四区在线免费观看| 99国产精品视频免费观看| 91美女视频网站| 91精彩视频在线观看| 亚洲福利国产精品| 国产亚洲综合在线| 欧美肥胖老妇做爰| 日韩电影在线免费看| 91美女片黄在线| 国产精品久久久爽爽爽麻豆色哟哟| 免费成人深夜小野草| 欧美日韩精品福利| 亚洲国产精品自拍| 欧美一区二区黄| 午夜激情一区二区| 欧美日韩亚洲综合一区二区三区| 亚洲黄一区二区三区| 99精品视频一区二区三区| 国产精品三级在线观看| 国产一区二区三区不卡在线观看 | 午夜精品福利视频网站| 欧美变态凌虐bdsm| proumb性欧美在线观看| 人人爽香蕉精品| 国产精品乱码妇女bbbb| 欧美日韩国产经典色站一区二区三区| 国产精品你懂的在线欣赏| 日韩综合在线视频| ww亚洲ww在线观看国产| 91亚洲男人天堂| 精品一区二区三区在线播放| 亚洲人精品午夜| 国产女主播在线一区二区| 欧美日韩中文字幕一区| 国产欧美日韩视频一区二区| 成人性生交大片免费看中文 | 亚洲精品在线网站| 精品女同一区二区| 亚洲国产精品激情在线观看| 国产日韩v精品一区二区| 亚洲欧美怡红院| 国产日产欧美一区| 国产日产亚洲精品系列| 久久午夜色播影院免费高清| 精品国产亚洲在线| 精品国产乱子伦一区| 26uuu国产一区二区三区 | 蜜臀va亚洲va欧美va天堂 | 久久久久久夜精品精品免费| 欧美电影免费提供在线观看| 精品久久久久久无| 久久精品亚洲乱码伦伦中文| 国产日产欧美一区| 亚洲四区在线观看| 日本不卡不码高清免费观看| 极品少妇一区二区三区精品视频| 精品一区二区精品| av电影天堂一区二区在线观看| 91尤物视频在线观看| 日韩欧美一级片| 1000部国产精品成人观看| 五月激情综合网| 国产一区二区免费在线| 91麻豆免费看片| 欧美一级日韩不卡播放免费| 中文字幕av不卡| 日韩在线一区二区| 成人国产精品免费观看动漫| 欧美三级蜜桃2在线观看| 精品91自产拍在线观看一区| 一区二区三区日韩精品视频| 精品一区二区三区香蕉蜜桃 | 日韩国产成人精品| av成人老司机| 欧美激情综合在线| 美女任你摸久久| 欧美日韩综合在线| 亚洲精品国产无套在线观| 国产呦萝稀缺另类资源| 欧美一区二区在线免费观看| 亚洲一区二区在线播放相泽| 9i看片成人免费高清| 久久久三级国产网站| 久久国产精品99精品国产 | 日日夜夜精品视频免费| 一本色道久久综合亚洲91| 亚洲欧美日韩一区| 色综合天天综合网天天狠天天| 欧美韩国日本不卡| 国产高清无密码一区二区三区| 久久久国产午夜精品| 久久69国产一区二区蜜臀| 日韩精品在线看片z| 狠狠v欧美v日韩v亚洲ⅴ| 精品福利av导航| 成人av午夜电影| 亚洲午夜一区二区| 欧美一级理论性理论a| 国产在线精品免费| 国产清纯美女被跳蛋高潮一区二区久久w| 国产一级精品在线| 亚洲天堂网中文字| 欧美一级片在线| 97se狠狠狠综合亚洲狠狠| 亚洲一区二区三区三| 日韩欧美国产午夜精品| 成人精品视频一区二区三区| 亚洲精品v日韩精品| 欧美一区二区三区影视| 福利电影一区二区| 日本欧美一区二区三区乱码| 国产视频一区二区在线观看| 欧美日韩美女一区二区| 成人免费观看视频| 日韩精品欧美精品| 亚洲免费在线电影| 久久久蜜桃精品| 欧美日韩和欧美的一区二区| 国产91高潮流白浆在线麻豆| 亚洲成人av一区二区三区| 国产精品久久久久永久免费观看| 久久精品亚洲麻豆av一区二区 | 亚洲特黄一级片| 国产欧美一区二区精品忘忧草| 欧美三级一区二区| 91视频在线看| 国产成人精品综合在线观看| 日韩综合在线视频| 天天av天天翘天天综合网色鬼国产| 亚洲私人影院在线观看| 亚洲欧美日韩国产另类专区| 在线观看成人小视频| 蜜臀久久99精品久久久画质超高清 | 久久久精品一品道一区| 一区二区三区四区五区视频在线观看 | 亚洲国产一区二区三区 | 视频在线观看91| 亚洲最色的网站| 日韩黄色免费网站| 久久精品国产网站| 成人小视频在线观看| jvid福利写真一区二区三区| 91免费视频大全| 欧美一区二区大片| 国产天堂亚洲国产碰碰| 国产精品第13页| 日本不卡的三区四区五区| 国产精品亚洲人在线观看| 成人免费毛片aaaaa**| 91麻豆精品国产91久久久资源速度 | 亚洲一区日韩精品中文字幕| 香蕉成人伊视频在线观看| 老司机一区二区| 99久久久精品| 欧美日韩成人在线一区| 久久伊99综合婷婷久久伊| 一区二区在线观看免费视频播放| 卡一卡二国产精品| 成人av免费观看| 久久久久国产精品人| 香蕉乱码成人久久天堂爱免费| 成人黄色片在线观看| 欧美一区二区福利在线| 一区二区免费在线| 粉嫩绯色av一区二区在线观看| 日韩女优电影在线观看| 天堂午夜影视日韩欧美一区二区| 日本久久精品电影| 亚洲国产精品一区二区久久恐怖片|