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

📄 penguinscreen.java

📁 自己开发的打企鹅小游戏
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
                        && http.getResponseCode() == HttpConnection.HTTP_OK) {
                        if ( (Ret = ParseNetData(httpData)) < 0) {
                            UpdateState(NETERROR);
                        }
                        else {
                            UpdateState(NETDISP);
                        }
                    }
                    else {
                        UpdateState(NETERROR);
                    }
                    bNetStart = false;
                    paintLoadPos = 0;
                    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;

            if (BufferSurface != null) {
                g = BufferSurface.getGraphics();
            }
            switch (state) {
                case COPYRIGHT:
                    if (bStateMapEntry) {
                        bStateMapEntry = false;
                        g.setColor(255, 255, 255);
                        g.fillRect(0, 0, 176, 208);
                        g.setColor(255, 255, 255);
                        drawImageEx(g, mapImage, 37, 81, 0, 0, 112, 80);
                    }
                    break;

                case INPUT:
                    g.setColor(0, 0, 0);
                    g.fillRect(0, 0, getWidth(), getHeight());
                    drawImageEx(g, mapImage, 30, 85, 0, 302, 125, 12); //text
                    drawImageEx(g, mapImage, 48, 100, 0, 288, 68, 14); //text
                    drawImageEx(g, mapImage, 60, 125, 0, 208, 62, 39); //alpha table
                    //drawImageEx(g, mapImage, 43, 167, 149, 232, 90, 22); //OK

                    drawNum(g, 80, 70, 176, 199, ActualScore);
                    //Hu hai qing Add

                    //倒计时
                    drawImageEx(g, mapImage, 60, 30, 358, 208, 44, 13);
                    drawNum1(g, 110, 30, 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++) {
                        drawImageEx(g, mapImage, 125 + i * 9, 105,
                                    0 + ( (name[order][i]) % 7) * 9,
                                    208 + 10 * (name[order][i] / 7), 9, 9);
                    }
                    g.setClip(0, 0, 176, 208);
                    g.setColor(255, 0, 0);
                    //Hu hai qing Add
                    if (namelen[order] == 4 && FireKey) {
                        currentLetter = 27;
                  //选中哪个字母,那个字母会被框圈住,画一个框出来
                        g.drawRect(60 + (currentLetter % 7) * 9,
                                   125 + 10 * (currentLetter / 7), 8, 9);
                    }
                    else {
                        g.drawRect(60 + (currentLetter % 7) * 9,
                                   125 + 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, 248, 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, 52, 30, 176, 144, 72, 18); //TITLE
                        drawImageEx(g, mapImage, 35, 70, 249, 238, 106, 50); //HELP
                        drawImageEx(g, mapImage, 43, 167, 149, 232, 90, 22); //OK
                        bStateMapEntry = false;
                    }
                    break;
                case MENU:
                    if (bStateMapEntry) {
                        drawImageEx(g, mapImage, 0, 0, 0, 0, getWidth(),
                                    getHeight());
                        drawImageEx(g, mapImage, 80, 110, 176, 180, 13, 7);
                        drawImageEx(g, mapImage, 80, 183, 189, 180, 13, 7);
                           //利用菜单类里头的坐标画出菜单
                        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, 52, 30, 176, 108, 72, 18); //TITLE
                    drawImageEx(g, mapImage, 43, 167, 149, 232, 90, 22); //OK

                    drawImageEx(g, mapImage, 30, 80, 57 * (1 - optionSelect),
                                247, 54, 13); //text of option

                    drawImageEx(g, mapImage, 101, 80,
                                27 * (1 - optionMenu[0]) +
                                54 * (1 - optionSelect), 275, 27, 13); //open/close

                    drawImageEx(g, mapImage, 30, 100, 27 * optionSelect, 261,
                                28, 13); //text

                    drawImageEx(g, mapImage, 101, 100,
                                27 * (1 - optionMenu[1]) + 54 * optionSelect,
                                275, 27, 13); //open/close
                    if (optionSelect == 0) {
                        drawImageEx(g, mapImage, 90, 80, 207, 180, 5, 9); //Left arrow
                        drawImageEx(g, mapImage, 134, 80, 217, 180, 5, 9); //Right arrow
                    }
                    else {
                        drawImageEx(g, mapImage, 90, 100, 207, 180, 5, 9); //Left arrow
                        drawImageEx(g, mapImage, 134, 100, 217, 180, 5, 9); //Right arrow

                    }

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

                    drawImageEx(g, mapImage, 20, 70, 57, 261, 26, 13); //order
                    drawImageEx(g, mapImage, 70, 70, 86, 261, 26, 13); //name
                    drawImageEx(g, mapImage, 120, 70, 112, 261, 26, 13); //score
                    drawImageEx(g, mapImage, 43, 167, 149, 232, 90, 22); //OK
                    drawImageEx(g, mapImage, 52, 30, 176, 0, 72, 18); //TITLE

                    for (int i = 0; i < 5; i++) {
                        int YY = 95 + 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, 30, YY, 176, 199, i + 1);
                            drawNum(g, 133 - digit * 5, YY, 176, 199,
                                    newsreel[i]);
                        }
                        else {
                            drawNum(g, 30, YY, 176, 199, i + 1);
                            drawNum(g, 133 - digit * 5, YY, 176, 199,
                                    newsreel[i]);
                        }
                        if (namelen[i] == 0) {
                            for (int j = 0; j < 4; j++) {
                                drawImageEx(g, mapImage, 63 + j * 10, YY, 62,
                                            238,
                                            9, 9); //....
                            }
                        }

                        else {
                            //这儿也是需要更换新的图片的位置,80,255是旧坐标
                            if (order == i) {
                                for (int j = 0; j < namelen[i]; j++) {
                                    drawImageEx(g, mapImage, 63 + j * 9, YY,
                                                71 +
                                                ( (name[i][j] % 7)) * 9,
                                                208 + 10 * (name[i][j] / 7),
                                                9, 9);
                                }
                            }
                            else {
                                for (int j = 0; j < namelen[i]; j++) {
                                    drawImageEx(g, mapImage, 63 + j * 9, YY,
                                                0 +
                                                ( (name[i][j]) % 7) * 9,
                                                208 + 10 * (name[i][j] / 7),
                                                9, 9);
                                }
                            }
                        }
                    }
                    if (bShowOK) {
                        drawImageEx(g, mapImage, 44, 96, 248, 223, 86, 15);
                    }

                    //Zxhred end
                    break;
                case UPLOAD:
                    if (bStateMapEntry) {
                        bStateMapEntry = false;
                        drawImageEx(g, mapImage, 22, 72, 0, 26, 133, 64); //黄底
                        uploadMenu.paint(g, mapImage);
                    }
                    break;

                case NET:
                case SCOREUPLOAD:
                    g.setColor(0, 0, 0);
                    g.fillRect(19, 189, 139, 4);
                    drawImageEx(g, uploadImage, 52, 171, 31, 1, 89, 14);
                    drawImageEx(g, uploadImage, 18, 188, 0, 16, 141, 6);
                    drawImageEx(g, uploadImage, paintLoadPos + 19, 189, 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("A fatal error occured when ");
                    drawStringEx(g, strErr, 10, 60, 150, 20);
                    strErr = "get data from server";
                    drawStringEx(g, strErr, 10, 80, 150, 20);
                    strErr = "Please try again or contact ";
                    drawStringEx(g, strErr, 10, 100, 150, 20);
                    strErr = "the server administrator";
                    drawStringEx(g, strErr, 10, 120, 150, 20);
                    break;

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

//                drawImageEx(g, menuImage, 0, 33, 383, 0, getWidth(), getHeight()-33);

                    drawImageEx(g, menuImage, 20, 70, 57, 261, 26, 13); //order
                    drawImageEx(g, menuImage, 70, 70, 86, 261, 26, 13); //name
                    drawImageEx(g, menuImage, 120, 70, 112, 261, 26, 13); //score
                    drawImageEx(g, menuImage, 43, 167, 149, 232, 90, 22); //OK
                    drawImageEx(g, menuImage, 52, 30, 176, 18, 72, 18); //TITLE

                    for (int i = 0; i < 5; i++) {
                        int YY = 95 + i * 12;
                        int digit = 0;
                        for (int result = netScore[i] / 10; result != 0;
                             result /= 10) {
                            digit++;
                        }
                        //Zxhred mod
                        if (posInHttpData == i + 1) {
                             //自身名次高亮显示
                            drawNum(g, 30, YY, 176, 199, netOrder[i]);
                            drawNum(g, 133 - digit * 5, YY, 176, 199,
                                    netScore[i]);
                        }
                        else {
                            drawNum(g, 30, YY, 176, 199, netOrder[i]);
                            drawNum(g, 133 - digit * 5, YY, 176, 199,
                                    netScore[i]);
                        }
                        if (netNameLen[i] == 0) {
                            for (int j = 0; j < 4; j++) {
                                drawImageEx(g, menuImage, 63 + j * 10, YY, 62,
                                            238,
                                            9, 9);
                            }
                        }
                        else {
                            if (posInHttpData == i + 1) {
                                for (int j = 0; j < netNameLen[i]; j++) {
                                    drawImageEx(g, menuImage, 63 + j * 9, YY,
                                                71 +
                                                ( (netName[i][j] % 7)) * 9,
                                                208 + 10 * (netName[i][j] / 7),
                                                9, 9);
                                }
                            }
                            else {
                                for (int j = 0; j < netNameLen[i]; j++) {
                                    drawImageEx(g, me

⌨️ 快捷键说明

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