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

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

?? gamelogic.java~1~

?? 一個類似炸彈人的游戲(city hunter)
?? JAVA~1~
?? 第 1 頁 / 共 5 頁
字號:
//===============================================//
//  BB Factory version 1.00                      //
//  Platform : Nokia K-Java handsets             //
//  Handset  : Nokia 7650                        //
//  Author   : Pacess HO                         //
//  Date     : 30-June-2003                      //
//  Copyright (C) 2003, Pacess HO.               //
//  Copyright (C) 2003, iNFOiSLiVE Corporation.  //
//===============================================//

package city_hunter;

import java.io.*;
import java.util.*;
import java.io.InputStream;
import java.io.IOException;
import java.io.EOFException;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.util.Random;
import javax.microedition.rms.*;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.MIDlet;
import javax.microedition.rms.RecordStore;


/*final class Sprite {
  int iType;
  int iMiss;
  int iX;
  int iDX;
  int iImageID;
  int iCounter;
} */

//==============================//
//  Logic part of "BB Factory"  //
//==============================//
public class GameLogic
    extends Canvas
    implements Runnable, CommandListener {

  //  Motorola V303: 176x182  //
   //  Motorola C650: 128x96   //
 //  private static final int SCREEN_WIDTH = 176;
  // private static final int SCREEN_HEIGHT = 182;

  private static final String AUTHOR = "[ Produced by Pacess ]";
  private static final String RMS_NAME = "Commander";
  private static final String VERSION = "v1.00";
  private static final int HELP_LINEEND = (20*9);
  private static final int CREDIT_LINEEND = (30*9);
  private static final int OPTION_H[] = {0, 13, 27, 42, 56, 71, 85, 97, 109};
  private static final int GRADE_RANGE = 500;
  private static final int PLAYER_SPEED = (4<<16);
  private static final int PLAYER_HP = 100;
  private static final byte MAX_LEVEL = 25;
  private static final byte MAX_RECORD = 10;
  private static final String RANK_NAME[] = {
    "Florence", "Pacess", "Angela", "Sharon", "Kay",
    "Daphne", "Angus", "Mandy", "Emma", "Idy"};

//  Screen stage ID  //
  private String StrErr = "OK";
  private static final byte STAGE_NONE = -1;
  private static final byte STAGE_INIT = 10;
  private static final byte STAGE_MENU = 20;
  private static final byte STAGE_LEVEL = 30;
  private static final byte STAGE_GAME = 40;
  private static final byte STAGE_CLEAR = 50;
  private static final byte STAGE_GAMEOVER = 55;
  private static final byte STAGE_SETTING = 60;
  private static final byte STAGE_HELP = 70;
  private static final byte STAGE_RANK = 80;
  private static final byte STAGE_RANKL = 85;
  private static final byte STAGE_RANKW= 86;
  private static final byte STAGE_UPLOAD = 90;
  private static final byte STAGE_CREDIT = 100;
  private static final byte STAGE_QUIT = 110;

  private static int m_iStage = STAGE_NONE;


  // private Sprite aa;
  int wwwwww = 0;

  private Command exit2 = new Command("退出", Command.BACK, 1);

  private static final int MAX_FRAME_WAIT = 55;
  private static final byte MAX_SAVELENGTH = 32;
  private static final byte MAX_SAVEDATA = 8;
//  private static final byte MAX_SPRITE = 8;
  private static final int OPTION_Y = 79;
  //  Screen information  //
  private int SCREEN_WIDTH = getWidth();
  private int SCREEN_HEIGHT = getHeight();  // isdesign for moto 176*182
                                            //SCREEN_WIDTH = 176;
                                            //SCREEN_HEIGHT = 182;


  private int itimeNo;

  //private int iImageno[];
//////////////////////////////////////////////////////////////////////////////////////////
  private byte M_Bomb[][];
  private static final byte m_bombtotal = 4;

  private byte M_detonation_spot[][]; ////////暴炸點
  private static final int m_detonation_spottotal = 9 * m_bombtotal;
  private static final byte m_detonationtime = 7; ///暴炸顯示時間
  private static final byte bombset = 60;
  private static final int bombstrat = 0; ///開炸
  private static final int bombtime = 1;
  private static final int bombover = 1;

  private int m_inocpu;  //用來統計當前關卡的怪物個數
  private byte M_imapno[][];
  /*    { //////////////////////測試用的數量.
      {
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
      ,
      {
      0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}
      ,
      {
      0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0}
      ,
      //   {0,1,1, 1,1,1, 1,1,1, 1,1,1, 1,1,0},
      {
      0, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 0}
      ,
      {
      0, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 0}
      ,
      //  {0,1,0, 1,0,1, 0,1,0, 1,0,1, 0,1,0},
      {
      0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}
      ,

      {
      0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0}
      ,
      {
      0, 1, 1, 1, 4, 5, 6, 7, 8, 1, 1, 1, 1, 1, 0}
      ,
      {
      0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0}
      ,

      {
      0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}
      ,
      {
      0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0}
      ,
      {
      0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}
      ,

      {
      0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0}
      ,
      {
      0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}
      ,
      {
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
  }; */


  private int m_imapnoW; //////大地圖中用小塊地圖的寬的個數.
  private int m_imapnoH; //////大地圖中用小塊地圖的高的個數.
  private int m_movex = 0; /////偏移X
  private int m_movey = 0; /////偏移Y

  //////////用來算m_movex,m_movey的值
  private int m_moveminx = 0; /////偏移X
  private int m_movemaxx = 0; /////偏移X
  private int m_moveminy = 0; /////偏移X
  private int m_movemaxy = 0; /////偏移X

  private int m_drawx = 0; /////手機上要畫的X方向的塊數
  private int m_drawy = 0; /////手機上要畫的Y方向的塊數
  private static final int m_mapTYPE_W = 16; ////////小地圖的寬
  private static final int m_mapTYPE_H = 16; /////小地圖的高

  private int m_pathW = 0; ////////沒多太用,等于一個

  private byte M_medal[][]; ////////////////獎品數組正想用來設獎品信息量的還沒有用上
  private static final byte m_medaltotal = 6; //////獎品最大個數

  private Image M_imgmap[]; /////地圖
  private Image M_imgbomb; /////炸彈
  private Image M_imgbombing;  //炸彈爆炸效果大
  private Image M_imgplay[]; /////人物
  private Image M_imgmedal[]; /////獎品

  private Image M_title;  // 顯示游戲信息
  private Image M_imgnumber; // 顯示游戲分數 大圖
  private Image M_imgnum[];  // 小圖
  //////////////////////////////////人物是16*20.在畫人時我y減了4.這樣當成16*16的.

  private static Image[][] m_imgman; // 主角動畫圖片
  private static Image m_Bombing[]; // 爆炸動畫圖片
  private Image m_imgenemy[][];  //怪物動畫圖片
  private static Image m_Bombwall[];
  private static Image m_diecpu[];
  byte oldmandirect;  //判斷方向的標志
  int imgpoint;   // 用來 指示當前畫那一幀

  private int M_iHPlay[]; ////人的性質
  private int M_iCPlay[][]; /////電腦的性質
  private Image PlayImage[]; ////人物圖
  private byte m_iCPUPlayNo = 0; /////電腦數量

  private byte Toll_Gate = 0; /////當前關數
  Random rand = new Random(); ///////用來產生CPU玩家的方向中的.

  private static final byte Bombing_c = 1; ///暴炸顯示畫面
  private static final byte Bombing_ud = 5; ///暴炸顯示畫面
  private static final byte Bombing_lr = 2; ///暴炸顯示畫面
  private static final byte Bombing_lt = 3; ///暴炸顯示畫面
  private static final byte Bombing_rt = 4; ///暴炸顯示畫面
  private static final byte Bombing_ut = 6; ///暴炸顯示畫面
  private static final byte Bombing_dt = 7; ///暴炸顯示畫面

  private static final byte Bombing_wall = 20; ///暴炸顯示時間

///////////////////////////////////////////////////////////////////////////////////


  // city_hunter game variables //
  private static int m_life;
  private static int m_iTopScore;
  private static int m_iCounter;
  private static int m_iTimeLeft;
  private static int m_iTimeBase;
   private static int m_iScore;


  //  Key  //
  private static final int KEY_NONE = 0;
  private static final int KEY_L = 1;
  private static final int KEY_R = 2;
  private static final int KEY_UP = 4;
  private static final int KEY_DOWN = 8;
  private static final int KEY_LEFT = 16;
  private static final int KEY_RIGHT = 32;
  private static final int KEY_OK = 64;
  private static final int KEY_NUM = 0;
  private static final byte KEY_FIRE = 5;


  private static final String TEXT_UI[] = {
      "Loading...",
      "Confirm quit?",
      "# Yes",
      "* No",
      "SETTING",
      "Sound",
      "Vibrate",
      "Auto-upload",
      "Difficulity",
      "OFF",
      "ON",         // 10
      "On a simple defend mission,",
      "your colleague are attack",
      "by enemy. Only you can safe",
      "their lives and win the war.",
      "[2] = Up",
      "[8] = Down",
      "[4] = Left",
      "[6] = Right",
      "[5] = Fire",
      "RANKING",    // 20
      "LEVEL ",
      "Back to menu?",
      "CREDIT LIST",
      "Producer: Pacess",
      "Programmer: Pacess",
      "Designer: JoJo",
      "Assistant: Sharon",
      "Tester: Game Team",
      "Presented by GameisLive",
      "All rights reserved",    // 30
      "Loading...",
      "Network error ",
      "Score: ",
      "Live: ",
      "Grade:",
      "Killed:",
      "Score:",
      "LEVEL CLEARED",
      "Start",
      "Exit",                   // 40
      "Change",
      "Back",
      "Next",
      "Yes",
      "No"};

  //  Object type  //

  private static final byte LEVEL_TOY[] =
      {
      16, 24, 36, 56, 80};
  private static final int LEVEL_TIME[] =
      {
      1000, 1200, 1400, 1700, 2000};

  //====================//
  //  System variables  //
  //====================//
  private static final Random m_rRandom = new Random();

  private static Thread m_pThread = null;
  private static GameMIDlet m_pParent;

  private static pRank m_pRank;
  private static pEffect m_pEffect;

  private static boolean m_bRefresh;
  private static boolean m_bPainting;
  private static byte m_iPlayed;
  private static int m_iScreenX, m_iScreenY;
  private static int m_iImageLoaded;

  private static int m_iKey;

  //  Game variables  //
//  private static Sprite m_pSprite[];
  private static boolean m_bVibrateOn;
  private static boolean m_bSoundOn;
  private static boolean m_bPause;
  private static byte m_iOption;
//  private static byte m_iLevel;
//  private static int m_iTopScore;
//  private static int m_iCounter;
 // private static int m_iTimeLeft;
 // private static int m_iTimeBase;





  private static long lTimeStart;


  //==================================//
  //  Execute once object is created  //
  //==================================//


  private static int m_iQuitL, m_iQuitR;
   private static int m_iQuitID;

   private static Command m_pNext;
   private static Command m_pBack;


  //  Variables for RMS  //
   private static int m_iRecord;
   private static int m_pScore[], m_pScoreI[];
   private static byte m_pLevel[], m_pLevelI[];
   private static String m_pName[], m_pNameI[];
   private static boolean m_bSound;
   private static boolean m_bVibrate;
   private static boolean m_bAutoUpload;
   private static byte m_iGameLevel;
   private static byte m_iLevel;
   private static String m_sName;
   private static String m_sPhoneNo;


  //===============//
  //  Constructor  //
  //===============//
  GameLogic(GameMIDlet pMIDlet) {

 //   super(true);
    m_pParent = pMIDlet;
    //    m_pEffect = new GameEffect();
    m_bPause = false;
    m_iStage = 0;
    m_iStage = STAGE_GAME; //////////////////本不因放這的測試用的
    Loaddatabase(); //////////////////////////本不因放這的測試用的
    m_life = 3;  // 測試用。。。。
    m_iTimeLeft = 2000;
    //     try {
    //  title = Image.createImage("/image/1.png");
    //  }
    // catch (Exception e) {

    // }

  }

  public final void Setup()  {

    m_iLevel = 0;
      m_bSound = true;
      m_bVibrate = false;
      m_bAutoUpload = false;
      m_sName = RANK_NAME[rand(RANK_NAME.length)];
      m_sPhoneNo = "85290009000";
      m_iRankNo = 10;
      m_pRank = new pRank(this);
      m_pEffect = new pEffect(Display.getDisplay(m_pParent));
      m_pEffect.LoadSound("/key.mid", (byte)1);
      m_pEffect.LoadSound("/explose.mid", (byte)2);

      //  Reset local ranking table  //
      m_pName = new String[MAX_RECORD];
      m_pScore = new int[MAX_RECORD];
      m_pLevel = new byte[MAX_RECORD];
      for (i=0; i<MAX_RECORD; i++)  {
        m_pName[i] = RANK_NAME[i];
        m_pScore[i] = 100*(MAX_RECORD-i);
        m_pLevel[i] = 0;
      }

      //  Reset internet ranking table  //
      m_pNameI = new String[MAX_RECORD];
      m_pScoreI = new int[MAX_RECORD];
      m_pLevelI = new byte[MAX_RECORD];
      for (i=0; i<MAX_RECORD; i++)  {
        m_pNameI[i] = RANK_NAME[i];
        m_pScoreI[i] = 100*(MAX_RECORD-i);
        m_pLevelI[i] = 0;
      }

  }

  //==================//
  //  Thread process  //
  //==================//
  public synchronized void start() {
    m_pThread = new Thread(this);
    m_pThread.start();
  }

  public synchronized void stop() {
    m_pThread = null;
  }

  public int rand_no(int a) {
    int r = rand.nextInt() % a;
    if (r < 0)
    {
      r = -r;
    }
    return r;
  }

  //====================//
  //  Handle key press  //
  //====================//

  private int ConvertKeyCode(int iKeyCode)  {
      int iKey;

      iKey = iKeyCode;
      if (iKey == getKeyCode(UP) || iKey == KEY_NUM2)  {iKey = KEY_UP;}  else
      if (iKey == getKeyCode(DOWN) || iKey == KEY_NUM8)  {iKey = KEY_DOWN;}  else
      if (iKey == getKeyCode(LEFT) || iKey == KEY_NUM4)  {iKey = KEY_LEFT;}  else
      if (iKey == getKeyCode(RIGHT) || iKey == KEY_NUM6)  {iKey = KEY_RIGHT;}  else
      if (iKey == getKeyCode(FIRE) || iKey == KEY_NUM5)  {iKey = KEY_FIRE;}

      if (iKey == KEY_NUM1)  {iKey = KEY_UP|KEY_LEFT;}  else
      if (iKey == KEY_NUM3)  {iKey = KEY_UP|KEY_RIGHT;}  else
      if (iKey == KEY_NUM7)  {iKey = KEY_DOWN|KEY_LEFT;}  else
      if (iKey == KEY_NUM9)  {iKey = KEY_DOWN|KEY_RIGHT;}  else

      if (iKey == KEY_STAR)  {iKey = KEY_L;}  else
      if (iKey == KEY_POUND)  {iKey = KEY_R;}

      return iKey;
    }

  public void keyPressed(int iKeyCode) {


    m_iKey = ConvertKeyCode(iKeyCode);
  /*  switch (iKeyCode)
    {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人av电影在线| 久久综合色天天久久综合图片| 国产精品视频免费看| 国产一区不卡视频| 26uuu精品一区二区三区四区在线| 免费观看30秒视频久久| 精品久久久久久最新网址| 美腿丝袜亚洲综合| 精品福利一二区| 国产精品影视天天线| 国产精品视频免费看| 色94色欧美sute亚洲线路二| 亚洲综合一区在线| 欧美一级一区二区| 国产电影精品久久禁18| 国产精品成人免费在线| 在线观看精品一区| 日韩精品免费视频人成| 久久婷婷国产综合精品青草| 国产99精品视频| 亚洲精选一二三| 欧美一级生活片| 成人在线一区二区三区| 亚洲一区二区三区在线播放| 亚洲天天做日日做天天谢日日欢| 色诱视频网站一区| 日本美女一区二区| 日本一区二区在线不卡| 欧美午夜一区二区三区免费大片| 免费观看成人鲁鲁鲁鲁鲁视频| 国产精品视频一二| 欧美高清精品3d| 国产伦精一区二区三区| 一区二区三区精品在线| 日韩一级视频免费观看在线| 不卡的av网站| 日韩av电影免费观看高清完整版 | 日韩欧美黄色影院| 成人丝袜高跟foot| 视频一区免费在线观看| 国产亲近乱来精品视频| 欧美挠脚心视频网站| 国产91丝袜在线播放| 亚洲高清一区二区三区| 欧美国产乱子伦 | 欧美一区二区三区四区五区 | 亚洲色图在线视频| 精品久久久久久久一区二区蜜臀| 色哟哟在线观看一区二区三区| 九色综合国产一区二区三区| 亚洲免费视频中文字幕| 久久久无码精品亚洲日韩按摩| 在线观看精品一区| av电影在线观看不卡| 91免费版在线看| 久久精品国产精品亚洲红杏| 亚洲一区二区成人在线观看| 国产精品灌醉下药二区| 精品国产乱码久久久久久夜甘婷婷| 在线观看视频一区二区欧美日韩| 国产河南妇女毛片精品久久久| 日韩高清一区在线| 亚洲国产精品嫩草影院| 专区另类欧美日韩| 中文字幕精品—区二区四季| 欧美一区二区在线不卡| 欧美色综合天天久久综合精品| av在线不卡电影| caoporen国产精品视频| 亚洲欧美日韩中文播放| 国产日韩精品一区| 久久综合九色综合97婷婷| 日韩欧美的一区二区| 欧美日韩激情一区二区| 在线国产电影不卡| 色狠狠av一区二区三区| 99久久国产免费看| av成人动漫在线观看| 在线视频中文字幕一区二区| 国产大片一区二区| 国产一区二区三区在线看麻豆| 美女精品一区二区| 青娱乐精品视频在线| 日韩国产精品大片| 日本va欧美va瓶| 日本美女视频一区二区| 青青草一区二区三区| 全国精品久久少妇| 美女网站色91| 狠狠色丁香婷婷综合| 国产主播一区二区| 国产福利一区二区三区在线视频| 欧美日本在线一区| 欧美另类一区二区三区| 91.成人天堂一区| 欧美一级爆毛片| 精品国产伦理网| 中文字幕精品在线不卡| 亚洲丝袜美腿综合| 亚洲风情在线资源站| 一区二区三区不卡在线观看| 亚洲成人av一区二区三区| 日日夜夜精品免费视频| 久久99久久久欧美国产| 国产精品一区二区x88av| 成人国产免费视频| 色94色欧美sute亚洲13| 欧美巨大另类极品videosbest | 91在线视频官网| 欧美在线观看一区| 日韩欧美国产电影| 国产精品私人自拍| 亚洲图片欧美色图| 国产在线观看一区二区| www.66久久| 在线成人免费观看| 国产无人区一区二区三区| 中文字幕一区免费在线观看| 亚洲成人7777| 国产精一品亚洲二区在线视频| 国产精品18久久久久| 99精品国产视频| 日韩一区二区免费在线观看| 欧美国产综合一区二区| 亚洲6080在线| 国产福利精品导航| 欧美日韩一区二区三区在线| 久久精品无码一区二区三区| 亚洲一区在线观看免费| 激情丁香综合五月| 欧美色网站导航| 久久精品欧美一区二区三区不卡| 亚洲香蕉伊在人在线观| 国产精品资源在线| 51精品秘密在线观看| 极品少妇一区二区| 91色porny蝌蚪| 久久免费视频色| 亚洲v中文字幕| 不卡av免费在线观看| 日韩精品在线一区| 亚洲观看高清完整版在线观看 | 中文字幕高清一区| 欧美a级一区二区| 色综合激情久久| 欧美极品另类videosde| 日韩专区一卡二卡| 色婷婷久久久亚洲一区二区三区| 久久综合久久综合亚洲| 亚洲国产精品自拍| 91亚洲精品久久久蜜桃| 国产视频一区二区三区在线观看| 日本va欧美va瓶| 在线电影国产精品| 亚洲精品高清视频在线观看| 成人免费视频一区| 久久久av毛片精品| 精品夜夜嗨av一区二区三区| 欧美理论电影在线| 午夜免费久久看| 91久久国产综合久久| 亚洲三级在线免费| www.性欧美| 国产精品国产三级国产普通话三级| 久草中文综合在线| 精品日韩一区二区三区| 日韩av在线免费观看不卡| 欧美无砖专区一中文字| 一区二区三区国产精华| 91官网在线观看| 一区二区在线免费观看| 色先锋aa成人| 一区二区三区影院| 欧美最新大片在线看| 一区二区成人在线视频| 欧美中文字幕亚洲一区二区va在线| 亚洲猫色日本管| 色婷婷精品久久二区二区蜜臂av| 中文字幕一区二区视频| 91亚洲国产成人精品一区二区三| 一色屋精品亚洲香蕉网站| 99视频精品在线| 亚洲视频一区二区免费在线观看| 97se亚洲国产综合自在线不卡 | 一区二区三区精品| 欧洲av一区二区嗯嗯嗯啊| 午夜视频在线观看一区| 亚洲天堂精品在线观看| 欧美综合欧美视频| 偷窥少妇高潮呻吟av久久免费| 欧美久久一二三四区| 久久精品国产**网站演员| 国产日韩一级二级三级| av一区二区不卡| 一区二区高清在线| 日韩欧美成人午夜| 成人午夜视频在线观看| 亚洲精品videosex极品| 欧美一区二区三区在线看| 国产寡妇亲子伦一区二区|