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

📄 gamecanvas.java

📁 仙境传说手机游戏源码 仅适用于NOKIA 游戏画布选择了KONIA自带的类。
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
        }

    }

    void setFieldMessageBox(String s, int i, int j, int k, int l, int i1)
    {
        setBoxText(s, -1, i1, i, j, k, l);
        setQuestString();
        if(state_index != 2)
            nowMode = state_index;
        state_index = 2;
    }

    void drawFieldMessageBox(Graphics g)
    {
        drawQuestBox(g);
    }

    void keyFieldMessageBox(int i)
    {
        if(step != 0)
            return;
        if(System.currentTimeMillis() - messageTime < 500L || messageTime == 0L)
            return;
        if(isNextBox())
        {
            setQuestString();
        } else
        {
            messageTime = 0L;
            state_index = nowMode;
            isInfoMode = false;
        }
    }

    void drawStatusMenu(Graphics g)
    {
        drawBase(g);
        switch(nowMenus)
        {
        case 0: // '\0'
            drawStatus(g);
            break;

        case 1: // '\001'
            drawSkillStatus(g);
            break;

        case 2: // '\002'
            drawEquip(g);
            break;

        case 3: // '\003'
            drawItem(g);
            break;

        case 4: // '\004'
            drawSystemMenu(g);
            break;
        }
    }
//状况 状态
    void keyStatusMenu(int i)
    {
        if(i == 48)
        {
            state_index = 0;
            nowMenus = 0;
        }
        switch(getGameAction(i))
        {
        case 2: // '\002'
            nowMenus--;
            if(nowMenus < 0)
                nowMenus = 4;
            break;

        case 5: // '\005'
            nowMenus++;
            if(nowMenus >= 5)
                nowMenus = 0;
            break;

        default:
            switch(nowMenus)
            {
            case 0: // '\0'
                keyStatus(i);
                break;

            case 1: // '\001'
                keySkill(i);
                break;

            case 2: // '\002'
                keyEquip(i);
                break;

            case 3: // '\003'
                keyItem(i);
                break;

            case 4: // '\004'
                keySystemMenu(i);
                break;
            }
            break;
        }
    }

    void drawBase(Graphics g)
    {
        g.setColor(255, 255, 255);
        g.fillRect(start_x - 61, start_y - 51, 122, 102);
        g.setColor(0, 0, 255);
        g.fillRect(start_x - 60, start_y - 50, 120, 100);
        int i = start_y - 50;
        int j = start_x - 60;
        drawEnglish(statusMenu[nowMenus], (j + 60) - (statusMenu[nowMenus].length * 6 >> 1), i, statusMenu[nowMenus].length, g);
        g.setColor(255, 255, 255);
        g.drawLine(j, i + 10, j + 120, i + 10);
        drawCursor(1, j + 1, i + 1, g);
        drawCursor(0, j + 114, i + 1, g);
        i += 10;
        drawEnglish(baseText[0], j + 5, i + 2, baseText[0].length, g);
        drawNumber(HP, j + 5 + 35, i + 2, g, 1);
        drawNumber(getMaxHP(), j + 5 + 35 + 6, i + 2, g, 0);
        i += 10;
        drawEnglish(baseText[1], j + 5, i + 2, baseText[1].length, g);
        drawNumber(SP, j + 5 + 35, i + 2, g, 1);
        drawNumber(getMaxSP(), j + 5 + 35 + 6, i + 2, g, 0);
        i += 10;
        drawEnglish(baseText[5], j + 5, i + 2, baseText[5].length, g);
        drawNumber(getCritical(), (j + 5 + 42) - 2, i + 2, g, 1);
        i += 10;
        i -= 30;
        drawEnglish(baseText[2], j + 70, i + 2, baseText[2].length, g);
        drawNumber(getAtk(), j + 118, i + 2, g, 1);
        i += 10;
        drawEnglish(baseText[3], j + 70, i + 2, baseText[3].length, g);
        drawNumber(getDef(), j + 118, i + 2, g, 1);
        i += 10;
        drawEnglish(baseText[4], j + 70, i + 2, baseText[4].length, g);
        drawNumber(getFlee(), (j + 70 + 42) - 2, i + 2, g, 1);
        i += 10;
        drawEnglish(baseText[6], j + 5, i + 2, baseText[6].length, g);
        drawNumber(WEIGHT, j + 5 + 60, i + 2, g, 1);
        drawNumber(getMaxWeight(), j + 5 + 60 + 6, i + 2, g, 0);
        i += 10;
        g.drawLine(j, i + 2, j + 120, i + 2);
        drawQuit(g);
    }

    void drawStatus(Graphics g)
    {
        int i = start_y - 50;
        int j = start_x - 60;
        byte byte0 = 0;
        for(int k = statusTop; k < statusTop + 3; k++)
        {
            drawEnglish(baseText[7 + k], j + 10, i + 55 + (k - statusTop) * 10, baseText[7 + k].length, g);
            switch(k)
            {
            case 0: // '\0'
                byte0 = STR;
                break;

            case 1: // '\001'
                byte0 = VIT;
                break;

            case 2: // '\002'
                byte0 = INT;
                break;

            case 3: // '\003'
                byte0 = DEX;
                break;

            case 4: // '\004'
                byte0 = LUK;
                break;

            case 5: // '\005'
                byte0 = AGI;
                break;
            }
            drawNumber(byte0, j + 10 + 24, i + 55 + (k - statusTop) * 10, g, 0);
        }

        drawEnglish(baseText[13], j + 80, i + 55, baseText[13].length, g);
        drawNumber(STATUS_POINT, j + 80, i + 65, g, 0);
        drawCursor(0, j + 2, i + 56 + statusCursor * 10, g);
        g.drawLine(j, (i + 100) - 12, j + 120, (i + 100) - 12);
        drawEnglish(helpStatus[statusTop + statusCursor], j + 5, (i + 100) - 11, g);
    }

    void keyStatus(int i)
    {
        switch(getGameAction(i))
        {
        default:
            break;

        case 8: // '\b'
            if(STATUS_POINT <= 0)
                return;
            switch(statusTop + statusCursor)
            {
            case 0: // '\0'
                STR++;
                break;

            case 1: // '\001'
                VIT++;
                break;

            case 2: // '\002'
                INT++;
                break;

            case 3: // '\003'
                DEX++;
                break;

            case 4: // '\004'
                LUK++;
                break;

            case 5: // '\005'
                AGI++;
                break;
            }
            STATUS_POINT--;
            break;

        case 1: // '\001'
            if(statusCursor > 0)
            {
                statusCursor--;
                break;
            }
            if(statusTop > 0)
            {
                statusTop--;
                statusCursor = 0;
            }
            break;

        case 6: // '\006'
            if(statusCursor < 2)
            {
                statusCursor++;
                break;
            }
            if(statusTop + statusCursor < 5)
            {
                statusTop++;
                statusCursor = 2;
            }
            break;
        }
    }
/**
 *           死亡状态
 * @param g
 */
    void drawSkillStatus(Graphics g)
    {
        int i = start_y - 50;
        int j = start_x - 60;
        boolean flag = false;
        for(int k = skillTop; k < skillTop + 3; k++)
        {
            drawEnglish(skill_names[k * 2], j + 10, i + 55 + (k - skillTop) * 10, g);
            drawNumber(SKILLS[k], j + 10 + skill_names[k * 2].length() * 6 + 3, i + 55 + (k - skillTop) * 10, g, 0);
        }

        drawEnglish(baseText[13], j + 80, i + 55, baseText[13].length, g);
        drawNumber(SKILL_POINT, j + 80, i + 65, g, 0);
        drawCursor(0, j + 2, i + 56 + skillCursor * 10, g);
        g.drawLine(j, (i + 100) - 12, j + 120, (i + 100) - 12);
        drawEnglish(skill_help, j + 5, (i + 100) - 11, g);
        if(slots[0] != 0)
            drawEnglish(skill_names[(slots[0] - 1) * 2], j + 5 + helpStatus.length * 6, (i + 100) - 11, g);
    }

    void keySkill(int i)
    {
        if(i == 42)
        {
            if(SKILLS[skillTop + skillCursor] == -1)
                return;
            if(skillTop + skillCursor == 0 || skillTop + skillCursor == 2)
                slots[0] = (byte)(skillTop + skillCursor + 1);
            return;
        }
        switch(getGameAction(i))
        {
        default:
            break;

        case 8: // '\b'
            if(SKILLS[skillTop + skillCursor] == -1)
                return;
            if(SKILL_POINT <= 0)
                return;
            if(SKILLS[skillTop + skillCursor] == 10)
                return;
            SKILLS[skillTop + skillCursor]++;
            SKILL_POINT--;
            break;

        case 1: // '\001'
            if(skillCursor > 0)
            {
                skillCursor--;
                break;
            }
            if(skillTop > 0)
            {
                skillTop--;
                skillCursor = 0;
            }
            break;

        case 6: // '\006'
            if(skillCursor < 2)
            {
                skillCursor++;
                break;
            }
            if(skillTop + skillCursor < 3)
            {
                skillTop++;
                skillCursor = 2;
            }
            break;
        }
    }
/**
 * 装备
 * @param g
 */
    void drawEquip(Graphics g)
    {
        int i = start_y - 50;
        int j = start_x - 60;
        boolean flag = false;
        for(int k = equipTop; k < equipTop + 3; k++)
        {
            drawEnglish(item_names[7 + k], j + 15, i + 55 + (k - equipTop) * 10, g);
            drawNumber(item_have[7 + k], (j + 120) - 5, i + 55 + (k - equipTop) * 10, g, 1);
            if(nowArm[0] - 1 == k + 7)
            {
                drawImage(imgs[13], j + 1, (i + 55 + (k - equipTop) * 10) - 2, 28, 0, 14, 14, g);
                continue;
            }
            if(nowArm[1] - 1 == k + 7)
                drawImage(imgs[13], j + 1, (i + 55 + (k - equipTop) * 10) - 2, 14, 0, 14, 14, g);
        }

        drawCursor(0, j + 2, i + 56 + equipCursor * 10, g);
        g.drawLine(j, (i + 100) - 12, j + 120, (i + 100) - 12);
        if(equipTop + equipCursor < 3)
            drawEnglish(vill_storeString[5], j + 5, (i + 100) - 11, vill_storeString[5].length, g);
        else
            drawEnglish(vill_storeString[6], j + 5, (i + 100) - 11, vill_storeString[6].length, g);
        drawNumber(item_value[(equipCursor + equipTop + 7) * 4 + 3], j + 5 + vill_storeString[6].length * 6, (i + 100) - 11, g, 0);
    }
/**
 * 装备按键
 * @param i
 */
    void keyEquip(int i)
    {
        switch(getGameAction(i))
        {
        default:
            break;

        case 8: // '\b'
            if(item_have[equipTop + equipCursor + 7] <= 0)
                break;
            if(equipTop + equipCursor < 3)
            {
                if(nowArm[0] != (byte)(equipTop + equipCursor + 7 + 1))
                    nowArm[0] = (byte)(equipTop + equipCursor + 7 + 1);
                else
                    nowArm[0] = 0;
                break;
            }
            if(nowArm[1] != (byte)(equipTop + equipCursor + 7 + 1))
                nowArm[1] = (byte)(equipTop + equipCursor + 7 + 1);
            else
                nowArm[1] = 0;
            break;

        case 1: // '\001'
            if(equipCursor > 0)
            {
                equipCursor--;
                break;
            }
            if(equipTop > 0)
            {
                equipTop--;
                equipCursor = 0;
            }
            break;

        case 6: // '\006'
            if(equipCursor < 2)
            {
                equipCursor++;
                break;
            }
            if(equipTop + equipCursor < 5)
            {
                equipTop++;
                equipCursor = 2;
            }
            break;
        }
    }

    void drawItem(Graphics g)
    {
        int i = start_y - 50;
        int j = start_x - 60;
        boolean flag = false;
        for(int k = itemTop; k < itemTop + 3; k++)
        {
            drawEnglish(item_names[k], j + 15, i + 55 + (k - itemTop) * 10, g);
            drawNumber(item_have[k], (j + 120) - 5, i + 55 + (k - itemTop) * 10, g, 1);
        }

        drawCursor(0, j + 2, i + 56 + itemCursor * 10, g);
        g.drawLine(j, (i + 100) - 12, j + 120, (i + 100) - 12);
        if(itemTop + itemCursor < 2)
            drawEnglish(itemStr[0], j + 5, (i + 100) - 11, g);
        else
            drawEnglish(itemStr[1], j + 5, (i + 100) - 11, g);
    }

    void keyItem(int i)
    {

        switch(getGameAction(i))
        {
        default:
            break;

        case 8: // '\b'
            if(itemCursor + itemTop >= 2 || item_have[itemCursor + itemTop] <= 0)
                break;
            item_have[itemCursor + itemTop]--;
            switch(itemCursor + itemTop)

⌨️ 快捷键说明

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