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

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

?? numencanva.java

?? Java手機版的火影忍者游戲源代碼
?? JAVA
?? 第 1 頁 / 共 5 頁
字號:
//    for (int i = pawns.size() - 1; i >= 0; i--) {
//      int[] pawn = (int[]) pawns.elementAt(i);
//      if ( (pawn[PAWN_STATE] == PAWN_STATE_FADE) &&
//          ( (pawn[PAWN_FLASH] & 2) == 2)) {
//        continue;
//      }
//      clipRect(pawn[PAWN_POS_X] - PAWN_HALFW, pawn[PAWN_POS_Y] - PAWN_HALFH,
//               PAWN_FACEW, PAWN_FACEH);
//      switch (pawn[PAWN_DIREC]) {
//        case -1:
//          drawFace(platres[pawn[PAWN_RESID]],
//                   pawn[PAWN_POS_X] - PAWN_HALFW -
//                   pawn[PAWN_FRAME] * PAWN_FACEW,
//                   pawn[PAWN_POS_Y] - PAWN_HALFH, 0);
//          break;
//        case 1:
//          drawFace(platres[pawn[PAWN_RESID]],
//                   pawn[PAWN_POS_X] + PAWN_HALFW +
//                   pawn[PAWN_FRAME] * PAWN_FACEW - 3 * PAWN_FACEW,
//                   pawn[PAWN_POS_Y] - PAWN_HALFH, 0x2000);
//          break;
//      }
//    }
//  }

  //****************************************************************************
   /** @todo:箱子 */
   //****************************************************************************
    private Vector chest = new Vector();
  private final int CHEST_COUNT = 9;
  private final int CHEST_RESID = 0;
  private final int CHEST_POS_X = 1;
  private final int CHEST_POS_Y = 2;
  private final int CHEST_POS_W = 3;
  private final int CHEST_POS_H = 4;
  private final int CHEST_BLAST = 5; //爆炸效果
  private final int CHEST_PROPS = 6; //道具的類型
  private final int CHEST_TOTAL = 7; //道具加的分 或者 子彈個數
  private final int CHEST_ANIMA = 8; //箱子的類型

  private final boolean chet_include(int[] chet, int x, int y) {
    return
        (x >= chet[CHEST_POS_X]) &&
        (y >= chet[CHEST_POS_Y]) &&
        (x <= chet[CHEST_POS_X] + chet[CHEST_POS_W]) &&
        (y <= chet[CHEST_POS_Y] + chet[CHEST_POS_H]);
  }

  private final void chet_load(InputStream in) throws IOException {
    int size_chet = in.read();
    for (int i = 0; i < size_chet; i++) {
      int[] chet = new int[CHEST_COUNT];
      chet[CHEST_RESID] = in.read();
      chet[CHEST_POS_X] = readByte(in) * 8;
      chet[CHEST_POS_Y] = readByte(in) * 8;
      chet[CHEST_ANIMA] = in.read();
      chet[CHEST_PROPS] = readByte(in);
      chet[CHEST_TOTAL] = in.read();
      chet[CHEST_BLAST] = readByte(in);
      chet[CHEST_POS_W] = platres[chet[CHEST_RESID]].getWidth();
      chet[CHEST_POS_H] = platres[chet[CHEST_RESID]].getHeight();
      chest.addElement(chet);
    }
  }

  private final void chet_run() {
    boolean touch = false;
    for (int i = chest.size() - 1; i >= 0; i--) {
      touch = false;
      int[] chet = (int[]) chest.elementAt(i);
      int chet_l = chet[CHEST_POS_X] + 3;
      int chet_r = chet[CHEST_POS_X] + chet[CHEST_POS_W] - 3;
      int chet_y = chet[CHEST_POS_Y] + chet[CHEST_POS_H] + 4;
      int v1 = grid_cellvalue(chet_l >> 3, chet_y >> 3);
      int v2 = grid_cellvalue(chet_r >> 3, chet_y >> 3);
      if ( (v1 == 1) || (v2 == 1) || (v1 == 2) || (v2 == 2)) {
        chet[CHEST_POS_Y] = ( (chet_y >> 3) << 3) - chet[CHEST_POS_H];
        continue;
      }
      for (int j = chest.size() - 1; j >= 0; j--) {
        if (i == j) {
          continue;
        }
        int[] chet_v = (int[]) chest.elementAt(j);
        if (chet_include(chet_v, chet_l, chet_y) ||
            chet_include(chet_v, chet_r, chet_y) ||
            chet_include(chet_v, (chet_l + chet_r) >> 1, chet_y)) {
          chet[CHEST_POS_Y] = chet_v[CHEST_POS_Y] - chet[CHEST_POS_H];
          touch = true;
        }
      }
      if (!touch) {
        chet[CHEST_POS_Y] += 4;
      }
    }
  }

  private final void chet_hitted(int[] chet, int attack) {
    chet[CHEST_ANIMA] -= attack;
    int center_x = ( (chet[CHEST_POS_X] << 1) + chet[CHEST_POS_W]) >> 1;
    int center_y = ( (chet[CHEST_POS_Y] << 1) + chet[CHEST_POS_H]) >> 1;
    if (chet[CHEST_ANIMA] > 0) {
      return;
    }
    if (chet[CHEST_BLAST] >= 0) {
      movi_create(chet[CHEST_BLAST], center_x, center_y, 0, 0, 0, 0, -1,
                  MOVI_DEATH_ONCE);
    }
    if (chet[CHEST_PROPS] >= 0) {
      prop_create(center_x, center_y, chet[CHEST_PROPS], chet[CHEST_TOTAL]);
    }
    chest.removeElement(chet);
  }

  private final void chet_draw() {
    g.setClip(0, 0, screen_w, screen_h);
    for (int i = chest.size() - 1; i >= 0; i--) {
      int[] chet = (int[]) chest.elementAt(i);
      int x = chet[CHEST_POS_X];
      int y = chet[CHEST_POS_Y];
      if (visible(x, y, x + chet[CHEST_POS_W], y + chet[CHEST_POS_H])) {
        drawFace(platres[chet[CHEST_RESID]], chet[CHEST_POS_X],
                 chet[CHEST_POS_Y], 0);
      }
    }
  }

  //****************************************************************************
   /** @todo:動畫 */
   //****************************************************************************
    private Vector movis = new Vector(); //動畫元件數據
  private int[][] movis_defin;
  private Image[] movis_image;

  private final int MOVI_DEFIN_COUNT = 5;
  private final int MOVI_DEFIN_FRAME = 0;
  private final int MOVI_DEFIN_LINKX = 1;
  private final int MOVI_DEFIN_LINKY = 2;
  private final int MOVI_DEFIN_FRAMW = 3;
  private final int MOVI_DEFIN_FRAMH = 4;

  private final int MOVI_COUNT = 18;
  private final int MOVI_DEFID = 0; //圖形索引
  private final int MOVI_POS_X = 1; //動畫位置X
  private final int MOVI_POS_Y = 2; //動畫位置Y
  private final int MOVI_FRAML = 3; //連接點到幀左邊的距離
  private final int MOVI_FRAMT = 4; //連接點到幀上邊的距離
  private final int MOVI_FRAMR = 5; //連接點到幀右邊的距離
  private final int MOVI_FRAMB = 6; //連接點到幀下邊的距離

  private final int MOVI_FACEW = 7;
  private final int MOVI_FRAMH = 8;
  private final int MOVI_FRAMW = 9;
  private final int MOVI_FRAME = 10; //動畫幀數
  private final int MOVI_INDEX = 11; //當前幀索引
  private final int MOVI_SPD_X = 12;
  private final int MOVI_SPD_Y = 13;
  private final int MOVI_ACCEX = 14;
  private final int MOVI_ACCEY = 15;
  private final int MOVI_DIREC = 16;
  private final int MOVI_DEATH = 17;

  private final int MOVI_DEATH_ONCE = 0;
  private final int MOVI_DEATH_EVER = 1;
  private final int MOVI_DEATH_SIDE = 2;

  private final void movi_loaddefine() {
    InputStream in = stream_create("/movi.bin");
    try {
      movis_defin = new int[in.read()][MOVI_DEFIN_COUNT];
      movis_image = new Image[movis_defin.length];
      for (int i = 0; i < movis_defin.length; i++) {
        movis_image[i] = platres[in.read()];
        movis_defin[i][MOVI_DEFIN_FRAME] = in.read();
        movis_defin[i][MOVI_DEFIN_LINKX] = in.read();
        movis_defin[i][MOVI_DEFIN_LINKY] = in.read();
        movis_defin[i][MOVI_DEFIN_FRAMW] = movis_image[i].getWidth() /
            movis_defin[i][MOVI_DEFIN_FRAME];
        movis_defin[i][MOVI_DEFIN_FRAMH] = movis_image[i].getHeight();
      }
    }
    catch (Exception e) {}
  }

  private final void movi_load(InputStream in) throws IOException {
    for (int i = in.read() - 1; i >= 0; i--) {
      movi_create(in.read(), readByte(in) * 8, readByte(in) * 8, 0, 0, 0, 0, -1,
                  MOVI_DEATH_EVER);
    }
  }

  private final void movi_create(int movi_index, int pos_x, int pos_y,
                                 int spd_x,
                                 int spd_y, int accelx, int accely, int direct,
                                 int death) {
    int[] movi = new int[MOVI_COUNT];
    movi[MOVI_DEFID] = movi_index;
    movi[MOVI_POS_X] = pos_x;
    movi[MOVI_POS_Y] = pos_y;

    movi[MOVI_FRAML] = movis_defin[movi_index][MOVI_DEFIN_LINKX];
    movi[MOVI_FRAMT] = movis_defin[movi_index][MOVI_DEFIN_LINKY];
    movi[MOVI_FRAMR] = movis_defin[movi_index][MOVI_DEFIN_FRAMW] -
        movis_defin[movi_index][MOVI_DEFIN_LINKX];
    movi[MOVI_FRAMB] = movis_defin[movi_index][MOVI_DEFIN_FRAMH] -
        movis_defin[movi_index][MOVI_DEFIN_LINKY];

    movi[MOVI_FACEW] = movis_image[movi_index].getWidth();
    movi[MOVI_FRAMH] = movis_image[movi_index].getHeight();
    movi[MOVI_FRAME] = movis_defin[movi_index][MOVI_DEFIN_FRAME];
    movi[MOVI_FRAMW] = movis_defin[movi_index][MOVI_DEFIN_FRAMW];
    movi[MOVI_INDEX] = 0;
    movi[MOVI_SPD_X] = spd_x;
    movi[MOVI_SPD_Y] = spd_y;
    movi[MOVI_ACCEX] = accelx;
    movi[MOVI_ACCEY] = accely;
    movi[MOVI_DIREC] = direct;
    movi[MOVI_DEATH] = death;
    movis.addElement(movi);
  }

  private final void movi_run() {
    for (int i = movis.size() - 1; i >= 0; i--) {
      int[] movi = (int[]) movis.elementAt(i);
      int movi_l = movi[MOVI_POS_X] -
          ( (movi[MOVI_DIREC] == -1) ? movi[MOVI_FRAML] : movi[MOVI_FRAMR]);
      int movi_t = movi[MOVI_POS_Y] - movi[MOVI_FRAMT];
      int movi_r = movi[MOVI_POS_X] +
          ( (movi[MOVI_DIREC] == -1) ? movi[MOVI_FRAMR] : movi[MOVI_FRAML]);
      int movi_b = movi[MOVI_POS_Y] + movi[MOVI_FRAMB];
      switch (movi[MOVI_DEATH]) {
        case MOVI_DEATH_ONCE:
          if (movi[MOVI_INDEX] == movi[MOVI_FRAME] - 1) {
            movis.removeElementAt(i);
          }
          break;
        case MOVI_DEATH_SIDE:
          if (!visible(movi_l, movi_t, movi_r, movi_b)) {
            movis.removeElementAt(i);
          }
          break;
      }
      movi[MOVI_POS_X] += movi[MOVI_SPD_X] / 100;
      movi[MOVI_POS_Y] += movi[MOVI_SPD_Y] / 100;
      movi[MOVI_SPD_X] += movi[MOVI_ACCEX];
      movi[MOVI_SPD_Y] += movi[MOVI_ACCEY];
      movi[MOVI_INDEX] = (movi[MOVI_INDEX] < movi[MOVI_FRAME] - 1) ?
          movi[MOVI_INDEX] + 1 : 0;
    }
  }

  private final void movi_draw() {
    //畫動畫物體
    for (int i = movis.size() - 1; i >= 0; i--) {
      int[] movi = (int[]) movis.elementAt(i);
      int movi_l = movi[MOVI_POS_X] -
          ( (movi[MOVI_DIREC] == -1) ? movi[MOVI_FRAML] : movi[MOVI_FRAMR]);
      int movi_t = movi[MOVI_POS_Y] - movi[MOVI_FRAMT];
      int movi_r = movi[MOVI_POS_X] +
          ( (movi[MOVI_DIREC] == -1) ? movi[MOVI_FRAMR] : movi[MOVI_FRAML]);
      int movi_b = movi[MOVI_POS_Y] + movi[MOVI_FRAMB];
      int draw_x = (movi[MOVI_DIREC] == -1) ?
          movi_l - movi[MOVI_INDEX] * movi[MOVI_FRAMW] :
          movi_r + movi[MOVI_INDEX] * movi[MOVI_FRAMW] - movi[MOVI_FACEW];
      if (visible(movi_l, movi_t, movi_r, movi_b)) {
        clipRect(movi_l, movi_t, movi[MOVI_FRAMW], movi[MOVI_FRAMH]);
        g.drawImage(movis_image[movi[MOVI_DEFID]],
                    draw_x - position_x, movi_t - position_y,
                    (movi[MOVI_DIREC] == -1) ? 0 : 0x2000);
      }
    }
  }

  /**********************************************
   * 轉換圖形翻轉屬性
   * @param rotate int 地圖中用到的翻轉數據
   * @return int nokia j2me api中的圖形翻轉數據
   **********************************************/
  private int translateRotate(int rotate) {
    switch (rotate) {
      case 1:
        return 0x2000;
      case 2:
        return 0x4000;
      case 3:
        return 90;
      case 4:
        return 180;
      case 5:
        return 270;
      default:
        return 0;
    }
  }

  //****************************************************************************
   // 游戲中的文字提示信息
   //****************************************************************************
//    private String message_prompt = null;
//  private final void message_prompt(String msg) {
//    message_prompt = msg;
//    refresh();
//  }

//  private final void message_prompt_show() {
//    if (message_prompt == null) {
//      return;
//    }
//    drawframe(15, 54, screen_w - 15, 74);
//    g.setColor(0xFFFFFF);
//    g.drawString(message_prompt, screen_w >> 1, 57, 0x11);
//  }

    /**********************************************
     * 主角被怪物攻擊
     * @param attack 怪物的攻擊力
     **********************************************/
    private final void hero_hitted(int attack) {
      if (hero_cflash > 0) {
        return;
      }
      if (attack <= 0) {
        return;
      }
      hero_anima--;
      hero_cflash = 10;
      if (hero_anima <= 0) {
        hero_setfirestatus(STATUS_FIRE_DEATHS);
        hero_setaction(HERO_ACTION_SHOTDEAD);
      }
    }

  /**********************************************
   * 判斷主角是否和一個矩形發生碰撞
   * @param x int
   * @param y int
   * @param r int
   * @param b int
   * @return boolean
   **********************************************/
  private final boolean hero_nexus(int x, int y, int r, int b) {
    int[] fram = heroaction[hero_action][hero_cframe];
    return! ( (x > hero_pos_x + fram[HERO_FRAME_RECTW]) ||
             (r < hero_pos_x - fram[HERO_FRAME_RECTW]) ||
             (y > hero_pos_y + hero_frectb) ||
             (b < hero_pos_y - fram[HERO_FRAME_RECTT]));
  }

  //****************************************************************************
   /** @todo: 主角 */
   //****************************************************************************
    private Image hero_face; //當前主角圖形資源
  private int hero_pos_x; //主角位置X
  private int hero_pos_y; //主角位置Y
  private int hero_old_x; //主角上次站立位置X
  private int hero_old_y; //主角上次站立位置Y
  private int hero_anima = 32; //生命值
  private int hero_attak = 10;
  private int hero_being = 3; //生命次數
  private int hero_score = 0; //得分
  private int hero_spd_y = 0; //垂直速度 速度數值為實際位移量的10倍
  private int hero_style = 0; //主角的樣式:人物,飛機,坦克

  private int hero_shot_type = 0; //子彈類型
  private int hero_shotcount = 0; //子彈數量
  private int hero_shottally = 0; //子彈延時計數
  private int hero_bombcount = 0; //炸彈數量
  private int hero_bombtally = 0; //炸彈投擲延時
  private int HERO_BOMBTALLY = 5; //投彈延遲常數

//  private int hero_add_being = 0; //根據分數添加的人數0
  private boolean hero_death = false; //如果主角完成了死亡動作 該標記被設為true 用于新出現主角

  private final int SHOT_TYPE_TOMM = 0; //機槍
  private final int SHOT_TYPE_MISS = 1; //導彈

  private int SPEED_HORZ_ACCEL = 60; //水平方向加速度
  private int SPEED_VERT_ACCEL = 50; //垂直方向加速度
  private int SPEED_VERT_START = -220; //起跳初速度
  private int SPEED_VERT_LIMIT = 200; //垂直方向最大速度

  private int hero_direct = 1; //主角動作的方向 -1:向左 1:向右
  private int hero_cflash;
  private int hero_status;
  private int hero_action;
  private int hero_cframe;
  private int hero_frectw;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一区二区三区不卡| 色综合久久天天综合网| 91国偷自产一区二区开放时间| 国产精品乱人伦一区二区| 国产高清成人在线| 亚洲精品精品亚洲| 色欧美片视频在线观看| 日本道色综合久久| 在线看日韩精品电影| 九色综合国产一区二区三区| 日本三级亚洲精品| 国产精品毛片a∨一区二区三区| 中国av一区二区三区| 国产精品国产三级国产普通话99| 欧美日韩性生活| 国产成人精品网址| 色综合色狠狠天天综合色| 91激情在线视频| 88在线观看91蜜桃国自产| 国产在线精品免费| 午夜精品123| 国产精品久线观看视频| 美女视频黄 久久| 色婷婷综合久久久久中文一区二区 | 国产一区二区三区香蕉| 欧美一区二区在线观看| 欧美一区二区三区视频免费| 亚洲午夜久久久久久久久电影网 | 另类小说图片综合网| 国产一区二区三区免费看| 日韩一区二区三区电影 | 91精品国产高清一区二区三区蜜臀| 国产精品久久久久久久久久久免费看 | 亚洲成人精品一区| 激情欧美一区二区三区在线观看| 成人免费视频caoporn| 91在线云播放| 777色狠狠一区二区三区| 亚洲.国产.中文慕字在线| 欧美猛男gaygay网站| 欧美在线你懂得| 亚洲国产人成综合网站| 欧美日精品一区视频| 午夜精品在线看| 91精品一区二区三区在线观看| 爽好多水快深点欧美视频| 国产激情视频一区二区三区欧美| 国产日韩亚洲欧美综合| 性感美女极品91精品| 欧美日产国产精品| 狠狠色综合日日| 国产精品伦理一区二区| 色综合久久99| 日本欧美肥老太交大片| 久久精品视频一区| 日韩精品电影在线| 欧美一级一区二区| 国产成人免费视频一区| 一区二区三区四区亚洲| 国产suv一区二区三区88区| 91精品婷婷国产综合久久性色 | 色狠狠综合天天综合综合| 亚洲电影视频在线| 久久一留热品黄| 午夜伦欧美伦电影理论片| 日韩精品一区二区在线观看| 亚洲国产精品一区二区久久恐怖片| 在线不卡欧美精品一区二区三区| 激情图区综合网| 玉米视频成人免费看| 欧美xxxxxxxx| 麻豆精品久久久| 国产精品久久久久天堂| 91精品国产麻豆| 99久久99久久精品免费看蜜桃 | 亚洲国产视频网站| 国产日产精品1区| 欧美久久久久久久久| 波多野结衣中文字幕一区二区三区| 久久久久久久久一| 黑人巨大精品欧美一区| 亚洲精品老司机| 久久久精品国产99久久精品芒果| 欧美日韩中文一区| av亚洲精华国产精华精华| 亚洲欧美一区二区三区久本道91| 99久久99久久综合| 精品中文字幕一区二区| 一区二区三区精品| 中文字幕一区在线观看| 91日韩精品一区| 亚洲国产精品久久艾草纯爱| 国产精品二三区| 国产丝袜在线精品| 制服丝袜中文字幕一区| 色婷婷精品大视频在线蜜桃视频 | 日本不卡一区二区三区高清视频| 亚洲人123区| 中文字幕亚洲一区二区va在线| 日韩欧美电影在线| 欧美一区二区三区免费视频| 在线观看网站黄不卡| 97久久超碰国产精品| 国产jizzjizz一区二区| 国产一区二区不卡在线| 久久se这里有精品| 精品一区二区三区在线播放视频| 日韩电影在线免费看| 亚洲福利一区二区三区| 亚洲国产视频一区| 一区二区三区 在线观看视频| 亚洲精品一卡二卡| 自拍偷拍欧美激情| 日韩免费在线观看| 欧美一级欧美一级在线播放| 欧美日韩精品一区二区三区| 欧美亚洲动漫精品| 国产一区二区精品久久| 国产米奇在线777精品观看| 精品在线播放免费| 国产在线视频一区二区| 国产成人精品在线看| 福利电影一区二区三区| 成人午夜av电影| 91麻豆高清视频| 欧美在线观看视频一区二区 | 久久五月婷婷丁香社区| 久久毛片高清国产| 国产欧美精品国产国产专区| 国产精品久久久一本精品| 亚洲欧洲国产专区| 亚洲一区中文日韩| 国产女人aaa级久久久级 | 亚洲成a人片在线不卡一二三区| 天天色 色综合| 国内精品国产成人国产三级粉色| 国产精品自拍网站| 亚洲bdsm女犯bdsm网站| 美女网站色91| av亚洲精华国产精华精华| 欧美专区在线观看一区| 精品久久久久久最新网址| 国产精品毛片无遮挡高清| 午夜免费久久看| 国产露脸91国语对白| 91福利在线看| 26uuu亚洲| 一区二区三区四区中文字幕| 麻豆精品国产91久久久久久 | 国产成人免费在线| 欧美三级电影在线看| 久久蜜桃av一区二区天堂 | 在线免费观看日韩欧美| 日韩欧美激情一区| 中文字幕一区二区三区乱码在线| 日韩高清在线一区| aaa欧美色吧激情视频| 日韩一区二区影院| 亚洲精品国产一区二区精华液| 久久精品国产秦先生| 色偷偷久久人人79超碰人人澡| 精品日韩一区二区三区| 亚洲欧美电影一区二区| 国产美女一区二区| 欧美另类久久久品| 1000部国产精品成人观看| 老汉av免费一区二区三区| 色香蕉久久蜜桃| 国产欧美日韩在线| 久久精品99久久久| 欧美亚洲国产bt| √…a在线天堂一区| 国产成人在线电影| 日韩一级在线观看| 亚洲午夜免费电影| 99这里只有精品| 国产色一区二区| 九色综合狠狠综合久久| 欧美疯狂性受xxxxx喷水图片| 一区在线观看免费| 国产成人精品影视| 精品国产伦一区二区三区免费| 日韩美一区二区三区| 亚洲午夜免费福利视频| 色综合欧美在线| 国产精品久久久久9999吃药| 国产美女一区二区| 久久老女人爱爱| 久久99精品久久久久| 欧美一二三四在线| 日本伊人色综合网| 7777精品久久久大香线蕉| 亚洲制服丝袜一区| 色天天综合久久久久综合片| 亚洲视频图片小说| 97精品久久久午夜一区二区三区| 国产精品卡一卡二卡三| 99久久精品国产导航| 亚洲精品国产品国语在线app| 91免费精品国自产拍在线不卡|