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

📄 penguinscreen.java

📁 为公司开发的打企鹅小游戏
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
                    netTimeOut = 0;
                }

                break;
            case NETERROR:
                //设置网络错误界面,超时则退回到菜单界面
                errorTimeOut += aTimeTick;
                if (errorTimeOut > 30000) {
                    UpdateState(MENU);
                    errorTimeOut = 0;
                }
                break;

            case END:
                //退出时保存数据
                saveRecord();
                gameMIDlet.quitApp();
                return;
                //Pause
            case PAUSE:
                break;
        }
        //subCheck(subList,sptList);
        //重新渲染
        repaint();
        serviceRepaints();
    }

    /**
     * 渲染
     * @param g 图形设备句柄
     */
    protected void paint(Graphics g) {
        try {
            Graphics tempSaved = g;

            switch (state) {
                case COPYRIGHT:
                    if (bStateMapEntry) {
                        bStateMapEntry = false;
                        g.setColor(255, 255, 255);
                        g.fillRect(0, 0, getWidth(), getHeight());
                        g.setColor(255, 255, 255);
                        drawImageEx(g, mapImage, 12, 41, 0, 0, 103, 45);
                    }
                    break;

                case INPUT:
                    g.setColor(0, 0, 0);
                    g.fillRect(0, 0, getWidth(), getHeight());
                    drawImageEx(g, mapImage, 11, 36, 121, 112, 107, 11); //text
                    drawImageEx(g, mapImage, 11, 50, 62, 112, 59, 11); //text
                    drawImageEx(g, mapImage, 33, 66, 135, 73, 63, 39); //alpha table

                    drawNum(g, 52, 25, 128, 186, ActualScore);
                    //Hu hai qing Add

                    //倒计时
                    drawImageEx(g, mapImage, 33, 9, 212, 93, 37, 11);
                    drawNum1(g, 77, 7, RemainSecond);

                    //Check Return Keys

                    boolean exist = false;
                    for (int i = 0; i < namelen[order]; i++) {
                        if (name[order][i] == 27) {
                            //用户输入回车键,更新到上传界面
                            UpdateState(UPLOAD);
                            newsreel[order] = ActualScore;
                            exist = true;
                        }
                    }
                    if (exist) {
                        namelen[order]--;
                        break;
                    }
                    for (int i = 0; i < namelen[order]; i++) {
                        if (name[order][i] == 26) {
                            //退格键处理
                            if (i == 0) {
                                namelen[order]--;
                            }
                            else {
                                namelen[order] = namelen[order] - 2;

                            }
                        }
                    }
                    if (namelen[order] > 4) {
                        //用户输入超长,则替换最后一个字符
                        name[order][3] = name[order][4];
                        namelen[order] = 4;
                    }

                    //hu hai qing end
                    for (int i = 0; i < namelen[order]; i++) {
                    //根据字母表画出名字
                        if (name[order][i] >= 21) {
                            drawImageEx(g, mapImage, 78 + i * 9, 52,
                                        135 + ( (name[order][i]) % 7) * 9,
                                        73 + 10 * (name[order][i] / 7), 9, 9);

                        }
                        else {
                            drawImageEx(g, mapImage, 78 + i * 9, 52,
                                        135 + ( (name[order][i]) % 7) * 9,
                                        73 + 10 * (name[order][i] / 7), 9, 10);

                        }
                    }
                    g.setClip(0, 0, getWidth(), getHeight());
                    g.setColor(255, 0, 0);
                    //Hu hai qing Add
                    if (namelen[order] == 4 && FireKey) {
                        currentLetter = 27;
                        //选中哪个字母,那个字母会被框圈住,画一个框出来
                        g.drawRect(33 + (currentLetter % 7) * 9,
                                   66 + 10 * (currentLetter / 7), 8, 9);

                    }
                    else {
                        g.drawRect(33 + (currentLetter % 7) * 9,
                                   66 + 10 * (currentLetter / 7), 8, 9);

                    }

                    //Hu hai qing end
                    break;

                case DEMO:
                    if (bStateMapEntry) {
                        bStateMapEntry = false;
                    }
                    break;
                case LINK:
                    if (bStateMapEntry) {
                        drawImageEx(g, mapImage, 0, 0, getWidth() * nowLinkPage,
                                    0, getWidth(),
                                    getHeight()); //TITLE
                        bStateMapEntry = false;
                    }
                    break;
                case HELP:
                        //利用菜单类里头的坐标画出菜单
                    if (bStateMapEntry) {
                        g.setColor(0, 0, 0);
                        g.fillRect(0, 0, getWidth(), getHeight());
                        drawImageEx(g, mapImage, 36, 11, 0, 56, 56, 14); //TITLE
                        drawImageEx(g, mapImage, 24, 35, 185, 0, 70, 71); //HELP
                        drawImageEx(g, mapImage, 30, 109, 95, 141, 70, 17); //OK
                        bStateMapEntry = false;
                    }
                    break;
                case MENU:
                    if (bStateMapEntry) {
                        drawImageEx(g, mapImage, 0, 0, 0, 0, getWidth(),
                                    getHeight());
                        drawImageEx(g, mapImage, 0, 0, 56, 18, 128, 55);
                        drawImageEx(g, mapImage, 0, 55, 0, 178, 128, 45);
                        drawImageEx(g, mapImage, 0, 100, 128, 195, 128, 28);

                        drawImageEx(g, mapImage, 59, 52, 213, 81, 10, 6);
                        drawImageEx(g, mapImage, 59, 110, 213, 87, 10, 6);
                        drawImageEx(g, mapImage, 20 ,115 ,166, 139, 80, 12);//@2004Bangbang
                        mainMenu.paint(g, mapImage);
                        bStateMapEntry = false;
                    }
                    break;

                case OPTION:
                    curFrame = 0;
                    g.setColor(0, 0, 0);
                    g.fillRect(0, 0, getWidth(), getHeight());
                    drawImageEx(g, mapImage, 36, 13, 0, 28, 56, 14); //TITLE
                    drawImageEx(g, mapImage, 30, 109, 95, 141, 70, 17); //OK

                    drawImageEx(g, mapImage, 15, 40, 48 * (1 - optionSelect),
                                127, 47, 11); //text of option

                    drawImageEx(g, mapImage, 77, 40,
                                24 * (1 - optionMenu[0]) +
                                48 * (1 - optionSelect), 155, 23, 11); //open/close

                    drawImageEx(g, mapImage, 15, 68, 48 * optionSelect, 141,
                                23, 11); //text

                    drawImageEx(g, mapImage, 77, 68,
                                24 * (1 - optionMenu[1]) + 48 * optionSelect,
                                155, 23, 11); //open/close
                    if (optionSelect == 0) {
                        drawImageEx(g, mapImage, 67, 42, 212, 71, 5, 9); //Left arrow
                        drawImageEx(g, mapImage, 106, 42, 222, 71, 5, 9); //Right arrow
                    }
                    else {
                        drawImageEx(g, mapImage, 67, 70, 212, 71, 5, 9); //Left arrow
                        drawImageEx(g, mapImage, 106, 70, 222, 71, 5, 9); //Right arrow

                    }

                    break;
                case DEMOLOCAL:
                case LOCAL:
                    g.setColor(0, 0, 0);
                    g.fillRect(0, 0, getWidth(), getHeight());

                    drawImageEx(g, mapImage, 13, 31, 0, 167, 23, 11); //order
                    drawImageEx(g, mapImage, 50, 31, 24, 167, 23, 11); //name
                    drawImageEx(g, mapImage, 88, 31, 48, 167, 23, 11); //score
                    drawImageEx(g, mapImage, 29, 109, 95, 141, 70, 17); //OK
                    drawImageEx(g, mapImage, 36, 11, 0, 98, 56, 14); //TITLE

                    for (int i = 0; i < 5; i++) {
                        int YY = 48 + i * 12;
                        int digit = 0;
                        for (int result = newsreel[i] / 10; result != 0;
                             result /= 10) {
                            digit++;
                        }
                        //Zxhred mod
                        //增加了if (order == i)的判断,在退到菜单状态时order == -1
                        if (order == i) {
                            drawNum(g, 16, YY, 128, 178, i + 1);
                            drawNum(g, 105 - digit * 5, YY, 128, 178,
                                    newsreel[i]);
                        }
                        else {
                            drawNum(g, 16, YY, 128, 186, i + 1);
                            drawNum(g, 105 - digit * 5, YY, 128, 186,
                                    newsreel[i]);
                        }
                        if (namelen[i] == 0) {
                            for (int j = 0; j < 4; j++) {
                                drawImageEx(g, mapImage, 45 + j * 10, YY, 124,
                                            103,
                                            9, 9); //画....
                            }
                        }

                        else {
                            if (order == i) {
                                for (int j = 0; j < namelen[i]; j++) {
                                    if (name[i][j] >= 21) {
                                        drawImageEx(g, mapImage, 45 + j * 9, YY,
                                            62 +
                                            ( (name[i][j] % 7)) * 9,
                                            73 + 10 * (name[i][j] / 7),
                                            9, 9);

                                    }
                                    else {
                                        drawImageEx(g, mapImage, 45 + j * 9, YY,
                                            62 +
                                            ( (name[i][j] % 7)) * 9,
                                            73 + 10 * (name[i][j] / 7),
                                            9, 10);
                                    }
                                }
                            }
                            else {
                                for (int j = 0; j < namelen[i]; j++) {
                                    if (name[i][j] >= 21) {
                                        drawImageEx(g, mapImage, 45 + j * 9, YY,
                                            135 +
                                            ( (name[i][j]) % 7) * 9,
                                            73 + 10 * (name[i][j] / 7),
                                            9, 9);

                                    }
                                    else {
                                        drawImageEx(g, mapImage, 45 + j * 9, YY,
                                            135 +
                                            ( (name[i][j]) % 7) * 9,
                                            73 + 10 * (name[i][j] / 7),
                                            9, 10);
                                    }
                                }
                            }
                        }
                    }
                    if (bShowOK) {
                        drawImageEx(g, mapImage, 24, 58, 165, 124, 80, 14);
                    }

                    //Zxhred end
                    break;
                case UPLOAD:
                    if (bStateMapEntry) {
                        bStateMapEntry = false;
                        drawImageEx(g, mapImage, 9, 37, 0, 26, 111, 54); //黄底
                        uploadMenu.paint(g, mapImage);
                    }
                    break;

                case NET:
                case SCOREUPLOAD:
                    drawImageEx(g, mapImage, 2, 98, 0, 0, 123, 22);
                    drawImageEx(g, mapImage, paintLoadPos + 2, 115, 0, 22, 27,
                                4);
                    break;

                case NETERROR:
                    g.setColor(255, 255, 255);
                    g.fillRect(0, 0, getWidth(), getHeight());
                    g.setColor(0, 0, 0);
                    String strErr = new String("Connection Error");
                    drawStringEx(g, strErr, 10, 60, 120, 30);
                    break;

                case NETDISP:

                    //画出网络排名的分数,姓名和名次
                    g.setColor(0, 0, 0);
                    g.fillRect(0, 0, getWidth(), getHeight());

                    drawImageEx(g, mapImage, 13, 31, 0, 167, 23, 11); //order
                    drawImageEx(g, mapImage, 50, 31, 24, 167, 23, 11); //name
                    drawImageEx(g, mapImage, 88, 31, 48, 167, 23, 11); //score
                    drawImageEx(g, mapImage, 29, 109, 95, 141, 70, 17); //OK
                    drawImageEx(g, mapImage, 36, 11, 0, 112, 56, 14); //TITLE

                    for (int i = 0; i < 5; i++) {
                        int YY = 48 + i * 12;
                        int digit = 0;
                        for (int result = netScore[i] / 10; result != 0;
                             result /= 10) {
                            digit++;
                        }
                        //Zxhred mod
                        if (posInHttpData == i + 1) {
                            //自身名次高亮显示
                            drawNum(g, 16, YY, 128, 178, netOrder[i]);
                            drawNum(g, 105 - digit * 5, YY, 128, 178,
                                    netScore[i]);
                        }
                        else {
                            drawNum(g, 16, YY, 128, 186, netOrder[i]);
                            drawNum(g, 105 - digit * 5, YY, 128, 186,
                                    netScore[i]);
                        }
                        if (netNameLen[i] == 0) {
                            for (int j = 0; j < 4; j++) {
                                drawImageEx(g, mapImage, 45 + j * 10, YY, 124,
                                            103,
                                            9, 9);
                            }
                        }
                        else {
                            //这儿也是需要更换新的图片的位置,80,255是旧坐标
                            if (posInHttpData == i + 1) {
                                for (int j = 0; j < netNameLen[i]; j++) {
                                    if (netName[i][j] >= 21) {
                                        drawImageEx(g, mapImage, 45 + j * 9, YY,
                                            62 +
                                            ( (netName[i][j] % 7)) * 9,
                

⌨️ 快捷键说明

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