⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gamecanvas.java

📁 A action mobile game called A Last Warrior Great for use and already configuration to build with JB
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
                                (GameCanvas.SKILL_INFO[lv / 5] >> 4 & 0x3ff) +
                                (GameCanvas.SKILL_INFO[lv / 5] & 0xf)))).concat(
                      "learned!"), 1, 1);
                  pause(1000);
                }
              }
              GameCanvas.gold += goldGained;
              clearActionWindow();
              drawStringInActionWindow(String.valueOf(String.valueOf(goldGained)).
                                       concat("G gained!"), 1, 1);
              goldGained = 0;
              pause(1000);
              for (int i = 0; i < numItemGained && GameCanvas.haveItemNb < 39;
                   i++) {
                GameCanvas.haveItem[GameCanvas.haveItemNb] = itemGained[i];
                clearActionWindow();
                drawStringInActionWindow(String.valueOf(String.valueOf("WeapnArmorShielRing Sell  OutHeal YNo ATKDEFH PM PHlpItmStSaveToTop A1  A2 A3   A4  A5   A6    A7   A8    S1  S2  S3   A4    A5  A6 A7  A8    R1  R2  R3 R4 R5   R7  R8  R9   SmallsMedmSupersSmallsMedmSupersSmallsMedmSupersS1S2S3S4   S5    S6    S7    S8   S9     K1K2  K3   K4  K5 K6 K7  K8  K9   K10   .".
                    substring(GameCanvas.ITEMS[itemGained[i] / 10][itemGained[i] %
                              10][0] >> 7 & 0xfff,
                              (GameCanvas.ITEMS[itemGained[i] /
                               10][itemGained[i] % 10][0] >> 7 & 0xfff) +
                              (GameCanvas.ITEMS[itemGained[i] /
                               10][itemGained[i] % 10][0] >> 0 & 0x7f)))).
                                         concat(" gained!"), 1, 1);
                GameCanvas.haveItemNb++;
                pause(1000);
              }

              numItemGained = 0;
              if ( ( -monsters[beingAttacked] - 3) % 6 == 0 &&
                  GameCanvas.nowDungeonFloor ==
                  GameCanvas.MON_BATTLE[GameCanvas.nbOfDungeon].length - 1) {
                player.setClip("boss_killed.mmf");
                clearScreen();
                int screenRefX = 0;
                int screenRefY = 19;
                int screenWidth = 120;
                int screenHeight = 60;
                int monster = -monsters[beingAttacked];
                int monsterWidth = GameCanvas.monsterImg[monster / 3].getWidth();
                int monsterHeight = GameCanvas.monsterImg[monster /
                    3].getHeight();
                int monsterX = screenRefX + (screenWidth - monsterWidth) / 2;
                int monsterY = (screenRefY + screenHeight) -
                    GameCanvas.monsterImg[monster / 3].getHeight() - 10;
                GameCanvas.drawFillRect(screenRefX, screenRefY, screenWidth - 1,
                                        screenHeight, 0);
                for (int i = screenRefX; i <= (screenRefX + screenWidth) - 26;
                     i += 6) {
                  int charHeight = 21;
                  GameCanvas.drawImage(monsterX, monsterY,
                                       GameCanvas.monsterImg[monster / 3]);
                  drawCharacImage(i,
                                  (screenRefY + screenHeight) - charHeight - 10,
                                  3, 0);
                  GameCanvas.drawFillRect(i - 6,
                                          (screenRefY + screenHeight) - charHeight -
                                          10, 6, charHeight, 0);
                  repaintIt();
                  pause(70);
                }

                pause(1000);
                drawAttackAnimation(monsterX, monsterY, monsterWidth,
                                    monsterHeight, true);
                GameCanvas.drawFillRect(monsterX - 7, monsterY - 7,
                                        monsterWidth + 14, monsterHeight + 14,
                                        0);
                drawRoundBox(0, screenRefY + screenHeight + 1, screenWidth, 36,
                             0xffffff);
                String hisWords;
                switch ( (monster - 3) / 6) {
                  case 0: // '\0'
                    hisWords = "\uCFE0\uC5D0\uC5D1~~~~";
                    break;

                  case 1: // '\001'
                    hisWords = "\uC73C\uC545! \uB450\uACE0\uBCF4\uC790!";
                    break;

                  case 2: // '\002'
                    hisWords = "\uCF01! \uB098 \uC0C8\uB410\uC5B4.";
                    break;

                  case 3: // '\003'
                  default:
                    hisWords = "\uC774\uAC8C \uB05D\uC774 \uC544\uB2C8\uB2E4";
                    GameCanvas.drawString(
                        "\uC5D0\uD53C\uC18C\uB4DC2\uC5D0\uC11C \uBCF4\uC790.",
                        6, screenRefY + screenHeight + 21);
                    break;
                }
                GameCanvas.drawString(hisWords, 6,
                                      screenRefY + screenHeight + 7);
                pause(5000);
                GameCanvas.stateInBattle = 0;
                dungeonCleared( ( -monsters[beingAttacked] - 3) / 6);
              } else {
                GameCanvas.stateInGame = 20;
                GameCanvas.stateInBattle = 0;
                makeDungeon();
              }
              GameCanvas.inMenu = false;
            } else
            if (GameCanvas.stateInBattle == 4 &&
                (GameCanvas.SKILL_INFO[GameCanvas.menuPagePos *
                 GameCanvas.maxMenuNb + GameCanvas.menuCursorPos] >> 30 & 1) ==
                1 && beingAttacked < 2 && monsters[beingAttacked + 1] >= 0) {
              beingAttacked++;
            } else {
              clearActionWindow();
              GameCanvas.stateInBattle = 6;
            }
            GameCanvas.keyEnabled = true;
          } else
          if (GameCanvas.stateInBattle == 6) {
            GameCanvas.keyEnabled = false;
            for (int i = 0; i < 3; i++) {
              GameCanvas.offScreen2.drawImage(GameCanvas.offImage, 0, 0, 0);
              if (monsters[i] < 0) {
                continue;
              }
              int checkY = 0;
              int interval = 80;
              for (int j = 0; j < 2; j++) {
                GameCanvas.offScreen.setClip(MONSTER_POS[i][0] - 2 - 1,
                                             MONSTER_POS[i][1], 36, 32);
                GameCanvas.drawImage( -1, 0, GameCanvas.offImage2);
                repaintIt();
                pause(interval);
                GameCanvas.offScreen.setClip( (MONSTER_POS[i][0] - 2) + 1,
                                             MONSTER_POS[i][1], 36, 32);
                GameCanvas.drawImage(1, 0, GameCanvas.offImage2);
                GameCanvas.offScreen.setClip(0, 0, 120, 143);
                repaintIt();
                pause(interval);
              }

              pause(interval);
              GameCanvas.drawImage(0, -1, GameCanvas.offImage2);
              GameCanvas.drawFillRect(0, (getHeight() + 16) - 1, 128, 1,
                                      0xffffff);
              repaintIt();
              pause(interval);
              GameCanvas.drawImage(0, 0, GameCanvas.offImage2);
              repaintIt();
              pause(interval);
              player.setClip("beaten.mmf");
              for (int k = 0;
                   k < (GameCanvas.MONSTER_INFO[monsters[i]][0] >> 17 & 0x3f);
                   k++) {
                checkY += Math.abs(GameCanvas.ran.nextInt() % 2) + 1;

              }
              checkY = Math.max(0, checkY - GameCanvas.attribute[1]);
              hp -= checkY;
              clearActionWindow();
              drawStringInActionWindow(String.valueOf(String.valueOf( (new
                  StringBuffer("HP damage ")).append(checkY).append(""))), 1, 1);
              drawStatusWin();
              pause(1000);
              if (hp > 0) {
                continue;
              }
              GameCanvas.stateInGame = 10;
              break;
            }

            GameCanvas.stateInBattle = 0;
            GameCanvas.keyEnabled = true;
            if (GameCanvas.stateInGame != 10) {
              drawActionWindow();
              drawCursorInActionWindow();
            } else {
              clearActionWindow();
              drawStringInActionWindow("(T.T) Ooops!", 1, 1);
              pause(1000);
              GameCanvas.nowVillageNb = 1;
              hp = 1;
              GameCanvas.inMenu = false;
              GameCanvas.characXPos = 3;
              GameCanvas.characYPos = 110;
              drawStreet();
            }
          }
        } else {
          pause(200);
        }
      } while (true);
    }

    volatile boolean alive;
    volatile int mul;
    volatile int nowCloudPos;
    volatile int moveCount;

    public GeneralThread() {
      alive = true;
      mul = 1;
      nowCloudPos = 210;
      moveCount = 0;
    }
  }

  public GameCanvas() {
    state = 0;
    lv = 1;
    hp = attribute[2];
    mp = attribute[3];
    exp = 0L;
    curPosInActWindow = new int[2][2];
    monstersHP = new int[3];
    goldGained = 0;
    expGained = 0;
    numItemGained = 0;
    itemGained = new int[3];
    phone_number = "0000005279";
    player = new SoundPlayer();
    ran = new Random();
    if (offImage == null) {
      offImage = Image.createImage(120, 143);
      offScreen = offImage.getGraphics();
      offImage2 = Image.createImage(120, 143);
      offScreen2 = offImage2.getGraphics();
      font = offScreen.getFont();
    }
    try {
      brick1 = Image.createImage("/brick1.png");
      roof1 = Image.createImage("/roof1.png");
      loftwin = Image.createImage("/loftwin.png");
      chimney = Image.createImage("/chimney.png");
      entrance1 = Image.createImage("/entrance1.png");
      doorpillar1 = Image.createImage("/doorpillar1.png");
      pillar = Image.createImage("/pillar.png");
      window = Image.createImage("/window.png");
      iconsImg = Image.createImage("/icons.png");
      dungate = Image.createImage("/dungate.png");
      dunbrick1 = Image.createImage("/dunbrick1.png");
      dunbrick2 = Image.createImage("/dunbrick2.png");
      tree1 = Image.createImage("/tree1.png");
      tree2 = Image.createImage("/tree2.png");
      cloud = Image.createImage("/cloud.png");
      effectImg = Image.createImage("/effect.png");
      characImg = Image.createImage("/charac.png");
      monsterImg[0] = Image.createImage("/mon0.png");
      monsterImg[1] = Image.createImage("/mon1.png");
      monsterImg[2] = Image.createImage("/mon2.png");
      monsterImg[3] = Image.createImage("/mon3.png");
      monsterImg[4] = Image.createImage("/mon4.png");
      monsterImg[5] = Image.createImage("/mon5.png");
      monsterImg[6] = Image.createImage("/mon6.png");
      monsterImg[7] = Image.createImage("/mon7.png");
      hpmpImg = Image.createImage("/hpmp.png");
      logo = Image.createImage("/logo.png");
      title = Image.createImage("/title.png");
      star = Image.createImage("/star.png");
      moon = Image.createImage("/moon.png");
      wings = Image.createImage("/wings.png");
      antenna = Image.createImage("/antenna.png");
      pointerImg = Image.createImage("/pointer.png");
      gauge = Image.createImage("/gauge.png");
      number = Image.createImage("/number.png");
    } catch (Exception exception) {}
    player.start();
    s_click = player.loadSoundData("click.mmf");
    s_cancel = player.loadSoundData("cancel.mmf");
    s_move_cursor = player.loadSoundData("move_cursor.mmf");
    LCD_WIDTH = getWidth();
    LCD_HEIGHT = getHeight();
    WIDTH = 120;
    HEIGHT = 144;
    correctionX = (LCD_WIDTH - WIDTH) / 2;
    correctionY = (LCD_HEIGHT - HEIGHT) / 2;
  }

  public void showNotify() {
    try {
      logo = Image.createImage("/logo.png");
      title = Image.createImage("/title.png");
      clearScreen();
      drawImage(8, 27, title);
      drawLine(8, 116, 112, 116, 0);
      drawLine(8, 118, 112, 118, 0);
      drawImage(24, 114, logo);
      title = logo = null;
    } catch (Exception exception) {}
    System.gc();
    keyEnabled = false;
    stateInGame = 4;
    repaintIt();
    generalThread = new GeneralThread();
    generalThread.start();
  }

  public void paint(Graphics g) {
    g.drawImage(offImage, correctionX, correctionY, 0);
  }

  public void repaintIt(int i, int j, int k, int l) {
    repaint(correctionX + i, correctionY + j, k, l);
  }

  public void repaintIt() {
    repaintIt(0, 0, WIDTH, HEIGHT);
  }

  public void drawCharacter(int direction) {
    drawCharacImage(characXPos, characYPos, direction, 0);
  }

  public void drawCharacImage(int x, int y, int direction, int nb) {
    int position = (direction * 2 + nb) * 19;
    offScreen.setClip(x, y, 19, 21);
    offScreen.drawImage(characImg, x - position, y, 0);
    offScreen.setClip(0, 0, 120, 143);
  }

  private void drawString(int s, int x, int y) {
    drawString("WeapnArmorShielRing Sell  OutHeal YNo ATKDEFH PM PHlpItmStSaveToTop A1  A2 A3   A4  A5   A6    A7   A8    S1  S2  S3   A4    A5  A6 A7  A8    R1  R2  R3 R4 R5   R7  R8  R9   SmallsMedmSupersSmallsMedmSupersSmallsMedmSupersS1S2S3S4   S5    S6    S7    S8   S9     K1K2  K3   K4  K5 K6 K7  K8  K9   K10   .".
               substring(s / 100, s / 100 + s % 100), x, y);
  }

  public void drawStringRight(String s, int rightX, int y) {
    drawString(s, rightX - font.stringWidth(s), y);
  }

  public void setMenuInfo(int mode, int item[]) {
    menuPagePos = 0;
    menuCursorPrePos = menuCursorPos = 0;
    itemName = item;
    totalMenuNb = itemName.length;
    switch (mode) {
      case 0: // '\0'
        menuStartX = 6;
        menuStartY = 29;
        menuOffset = 14;
        maxMenuNb = 4;
        menuWidth = 100;
        break;

      case 1: // '\001'
        menuStartX = 6;
        menuStartY = 29;
        menuOffset = 14;
        maxMenuNb = 4;
        menuWidth = 110;
        break;

      case 50: // '2'
        menuStartX = 7;
        menuStartY = 45;
        menuOffset = 15;
        maxMenuNb = 5;
        menuWidth = 60;
        break;

      case 140:
        menuStartX = 4;
        menuStartY = 4;
        menuOffset = 16;
        maxMenuNb = 5;
        menuWidth = 86;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -