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

📄 maincanvas.java

📁 超精典手机版Call of Duty(使命的召唤)
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
                    g.setClip(l1 - 3, j4 + 16, 21, 7);
                    g.setColor(0);
                    g.fillRect(l1 - 3, j4 + 16, 21, 7);
                    g.setColor(0xff0000);
                    g.fillRect(l1 + 5, j4 + 18, playerHealth[int4] * 4, 3);
                    g.setClip(l1 - 2, j4 + 17, 5, 5);
                    g.drawImage(symbolsImage, l1 - 2 - playerType[int4] * 5, j4 + 17, 20);
                    g.setClip(l1 + 4, j4 + 17, 13, 5);
                    if(int4 == currentPlayer)
                        g.drawImage(symbolsImage, l1 - 35, j4 + 17, 20);
                    else
                        g.drawImage(symbolsImage, l1 - 22, j4 + 17, 20);
                }

            g.setClip(0, 0, width, height);
            g.drawImage(statusBar, 1, height - 14 - 1, 20);
            if(playerProtected[currentPlayer] > clockTicks)
            {
                g.setClip(67, height - 14 - 1, 12, 14);
                g.drawImage(symbolsImage, -15, height - 17, 20);
                g.setClip(0, 0, width, height);
            }
            if(showOrders > clockTicks)
            {
                g.setColor(0xffffff);
                g.setFont(font);
                if(takeCover)
                    g.drawString("Orders: Take Cover", width - 2, height - fontHeight, 24);
                else
                    g.drawString("Orders: Follow Me", width - 2, height - fontHeight, 24);
            }
        } else
        {
            g.setColor(0);
            g.fillRect(0, 0, width, height);
            g.drawImage(splashImage, halfWidth, halfHeight, 3);
            g.setColor(0xffffff);
            g.setFont(largeFont);
            if(screenType >= 100)
            {
                g.drawString(Strings.helpTitles[screenType - 100], halfWidth, 4, 17);
                ShowButtons(g, null, "BACK");
                g.setFont(font);
                PrintTextStrings(g);
            } else
            {
                switch(screenType)
                {
                case 2: // '\002'
                default:
                    break;

                case 0: // '\0'
                    if(frameCount == 2)
                        g.drawImage(titleImage, halfWidth, halfHeight, 3);
                    break;

                case 1: // '\001'
                    g.drawImage(titleImage, halfWidth, 4, 17);
                    g.drawImage(menuImage, halfWidth, menuGraphicHeight, 17);
                    int k4 = menuGraphicHeight + menuLineHeight * (menuSelection - menuStart);
                    g.setClip(4, k4, 16, 16);
                    g.drawImage(unitImage, 4 - (frameCount << 4), k4 - 80, 20);
                    g.setClip(width - 4 - 16, k4, 16, 16);
                    g.drawImage(unitImage, width - 4 - 16 - (frameCount << 4), k4 - 48, 20);
                    break;

                case 3: // '\003'
                    g.drawString("Help", halfWidth, 4, 17);
                    ShowButtons(g, "SELECT", "BACK");
                    PrintMenuStrings(g);
                    break;

                case 4: // '\004'
                case 5: // '\005'
                    g.drawString("Options", halfWidth, 4, 17);
                    ShowButtons(g, "SELECT", "BACK");
                    PrintMenuStrings(g);
                    break;

                case 13: // '\r'
                    g.drawString("Reset Game", halfWidth, 4, 17);
                    g.drawString("Are you sure?", halfWidth, halfHeight, 17);
                    ShowButtons(g, "CONFIRM", "BACK");
                    break;

                case 6: // '\006'
                    g.drawImage(titleImage, halfWidth, 4, 17);
                    ShowButtons(g, "SELECT", "BACK");
                    PrintMenuStrings(g);
                    break;

                case 7: // '\007'
                case 8: // '\b'
                    g.drawString(Strings.missionTitle[missionNumberCurrent], halfWidth, 4, 17);
                    ShowButtons(g, "CONTINUE", screenType != 7 ? "MENU" : "BACK");
                    g.setFont(font);
                    PrintTextStrings(g);
                    break;

                case 11: // '\013'
                    g.drawString(Strings.missionTitle[missionNumberCurrent], halfWidth, 4, 17);
                    if(missionNumberCurrent < 9)
                        ShowButtons(g, "CONTINUE", "MENU");
                    else
                        ShowButtons(g, null, "MENU");
                    g.setFont(font);
                    PrintTextStrings(g);
                    break;

                case 12: // '\f'
                    ShowButtons(g, "RESTART", "MENU");
                    g.drawString("All units killed", halfWidth, halfHeight, 17);
                    break;

                case 9: // '\t'
                    int i2 = halfWidth - 22;
                    int l4 = 4 + largeFontHeight + 4;
                    for(int i5 = 0; i5 < 3; i5++)
                    {
                        g.setClip(i2, l4, 12, 12);
                        if(playerType[i5] >= 0)
                            g.drawImage(symbolsImage, i2 - 12 * playerType[i5], l4 - 5, 20);
                        else
                            g.drawImage(symbolsImage, i2 - 60, l4 - 5, 20);
                        i2 += 16;
                    }

                    i2 = halfWidth - 24;
                    l4 += 22;
                    g.setClip(i2, l4, 48, 72);
                    g.drawImage(selectImage, i2 - 48 * frameCount, l4, 20);
                    g.setClip(i2 - 15, l4 + 32, 5, 9);
                    g.drawImage(arrowsImage, i2 - 15, l4 + 28, 20);
                    g.setClip(i2 + 58, l4 + 32, 5, 9);
                    g.drawImage(arrowsImage, i2 + 54, l4 + 28, 20);
                    g.setClip(0, 0, width, height);
                    g.drawString("Select Squad", halfWidth, 4, 17);
                    if(playerType[0] == frameCount || playerType[1] == frameCount || playerType[2] == frameCount)
                        g.drawString("DESELECT", 4, height - 4 - largeFontHeight, 20);
                    else
                    if(playerType[0] < 0 || playerType[1] < 0 || playerType[2] < 0)
                        g.drawString("SELECT", 4, height - 4 - largeFontHeight, 20);
                    if(playerType[0] >= 0 && playerType[1] >= 0 && playerType[2] >= 0)
                        g.drawString("CONTINUE", width - 4, height - 4 - largeFontHeight, 24);
                    g.setFont(font);
                    i2 = halfWidth;
                    l4 += 82;
                    g.drawString(Strings.playerName[frameCount], i2, l4, 17);
                    g.drawString("Armor: " + Strings.armourLevel[INITIAL_HEALTH[frameCount] - 1], i2, l4 + fontHeight + 4, 17);
                    g.drawString("Special: " + Strings.playerSpecialName[frameCount], i2, l4 + 2 * fontHeight + 4, 17);
                    break;

                case 10: // '\n'
                    g.drawString("Select Squad", halfWidth, 4, 17);
                    ShowButtons(g, "CONFIRM", "CHANGE");
                    for(int j5 = 0; j5 < 3; j5++)
                    {
                        g.setClip((halfWidth - 80) + 54 * j5, halfHeight - 24, 48, 72);
                        g.drawImage(selectImage, ((halfWidth - 80) + 54 * j5) - 48 * playerType[j5], halfHeight - 24, 20);
                    }

                    break;

                case 14: // '\016'
                    g.drawImage(titleImage, halfWidth, 4, 17);
                    ShowButtons(g, "CONTINUE", null);
                    g.setFont(font);
                    PrintTextStrings(g);
                    break;
                }
            }
        }
    }

    private void PrintMenuStrings(Graphics g)
    {
        for(int i = 0; i < menuLines; i++)
            g.drawString(menuStringArray[(menuStart + i) - 1], halfWidth, menuGraphicHeight + 1 + menuLineHeight * i, 17);

        int j = menuGraphicHeight + menuLineHeight * (menuSelection - menuStart);
        g.setClip(4, j, 16, 16);
        g.drawImage(unitImage, 4 - (frameCount << 4), j - 80, 20);
        g.setClip(width - 4 - 16, j, 16, 16);
        g.drawImage(unitImage, width - 4 - 16 - (frameCount << 4), j - 48, 20);
        if(menuStart > 1 || menuStart + menuLines <= menuLength)
        {
            g.setClip(halfWidth - 3, height - 4 - 9, 7, 4);
            g.drawImage(arrowsImage, halfWidth - 4, height - 4 - (menuStart != 1 ? 13 : 9), 20);
            g.setClip(halfWidth - 3, height - 4 - 4, 7, 4);
            g.drawImage(arrowsImage, halfWidth - 4, height - 4 - (menuStart + menuLines <= menuLength ? 13 : 17), 20);
        }
    }

    private void PrintTextStrings(Graphics g)
    {
        for(int i = 0; i < menuLines; i++)
            g.drawString(menuStringArray[(menuStart + i) - 1], 4, menuGraphicHeight + 1 + menuLineHeight * i, 20);

        if(menuStart > 1 || menuStart + menuLines <= menuLength)
        {
            int j = menuLines * menuLineHeight;
            g.drawRect(width - 4 - 7, menuGraphicHeight + 5, 6, j - 11);
            if(menuLines >= menuLength)
                g.fillRect(width - 4 - 5, menuGraphicHeight + 7, 3, j - 14);
            else
                g.fillRect(width - 4 - 5, menuGraphicHeight + ((menuStart - 1) * (j - 14)) / menuLength + 7, 3, (menuLines * (j - 14)) / menuLength);
            g.setClip(width - 4 - 7, menuGraphicHeight, 7, 4);
            g.drawImage(arrowsImage, width - 4 - 8, menuStart != 1 ? menuGraphicHeight - 4 : ((int) (menuGraphicHeight)), 20);
            g.setClip(width - 4 - 7, (menuGraphicHeight + j) - 4, 7, 4);
            g.drawImage(arrowsImage, width - 4 - 8, (menuGraphicHeight + j) - (menuStart + menuLines <= menuLength ? 13 : 17), 20);
        }
    }

    private void ShowButtons(Graphics g, String s, String s1)
    {
        if(s != null)
            g.drawString(s, 4, height - 4 - largeFontHeight, 20);
        if(s1 != null)
            g.drawString(s1, width - 4, height - 4 - largeFontHeight, 24);
    }

    private void CheckTextUpAndDown(int i)
    {
        if(i == 1 && menuStart > 1)
            menuStart--;
        else
        if(i == 6 && menuStart + menuLines <= menuLength)
            menuStart++;
    }

    private void CheckMenuUpAndDown(int i)
    {
        if(i == 1 && menuSelection > 1)
        {
            menuSelection--;
            if(menuSelection < menuStart)
                menuStart--;
            repaint();
        } else
        if(i == 6 && menuSelection < menuLength)
        {
            menuSelection++;
            if(menuSelection >= menuStart + menuLines)
                menuStart++;
            repaint();
        }
    }

    private void UpdateStatusBar()
    {
        Graphics g = statusBar.getGraphics();
        g.setColor(0);
        g.fillRect(0, 0, 66, 14);
        g.setClip(1, 1, 12, 12);
        g.drawImage(symbolsImage, 1 - 12 * playerType[currentPlayer], -4, 20);
        g.setClip(0, 0, 66, 14);
        for(int i = 0; i < 3; i++)
        {
            g.setColor(0xffffff);
            g.drawRect(14 + i * 9, 1, 9, 11);
            if(playerHealth[currentPlayer] > i)
            {
                g.setColor(0xff0000);
                g.fillRect(15 + i * 9, 2, 8, 10);
            }
        }

        g.setColor(0xffffff);
        g.fillRect(43, 1, 22, 12);
        if(playerType[currentPlayer] != 4 && playerType[currentPlayer] != 3)
        {
            g.setClip(43, 2, 10, 10);
            g.drawImage(specialImage, -21, 2 - 10 * WEAPON_TYPE[playerType[currentPlayer]], 20);
            g.setClip(0, 0, 66, 14);
            g.setColor(0);
            g.setFont(font);
            g.drawString("" + playerSpecial[currentPlayer], 64, 1, 24);
        }
    }

    private void SetInvisibility(int int0, boolean flag)
    {
        if(flag)
        {
            if(int0 == currentPlayer)
            {
                Graphics g = statusBar.getGraphics();
                g.setClip(43, 2, 10, 10);
                g.drawImage(symbolsImage, -29, -4, 20);
            }
            playerSpecial[int0] = clockTicks + 180;
        } else
        {
            if(int0 == currentPlayer)
            {
                Graphics g1 = statusBar.getGraphics();
                g1.setClip(43, 2, 10, 10);
                g1.setColor(0xffffff);
                g1.fillRect(43, 2, 10, 10);
            }
            playerSpecial[int0] = 0;
        }
    }

    private void RedrawSceneryAbove(Graphics g, int i, int j, int k, int l, int int0)
    {
        for(int i1 = j >> 4; i1 <= j + l >> 4; i1++)
            if(i1 >= 0 && i1 < 128)
            {
                for(int j1 = i >> 4; j1 <= i + k >> 4; j1++)
                    if(j1 >= 0 && j1 < 11 && TileBlockData[MapData[i1][j1]] == 2)
                    {
                        g.setClip((j1 << 4) - screenImageLeft, (i1 << 4) - screenImageTop, 16, 16);
                        int int1 = TileTextureData[MapData[i1][j1]];
                        g.drawImage(tilesImage, (j1 - int1 << 4) - screenImageLeft, (i1 << 4) - screenImageTop, 20);
                        if(int0 >= 0 && int1 != 28 && playerHealth[int0] >= 0 && squareMax < 30)
                        {
                            squarePlayer[squareMax] = int0;
                            squareRow[squareMax] = (int)i1;
                            squareCol[squareMax] = (int)j1;
                            squareMax++;
                        }
                    }

            }

    }

    protected void keyPressed(int i)
    {
        if(screenType == 2)
        {
            nextKeyCode = i;
        } else
        {
            int j = getGameAction(i);
            if(screenType >= 100)
            {
                if(i == -7)
                {
                    short word0 = (short)(screenType - 99);
                    SetMenuScreenType((short)3);
                    StartSimpleTimer((short)2, 100);

⌨️ 快捷键说明

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