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

📄 hiscorescreen.java

📁 J2ME的游戏原代码!希望能帮助有需要帮助的师兄弟们!
💻 JAVA
字号:
package com.centerscore.game;

import javax.microedition.lcdui.*;
import java.util.*;
import java.io.*;

class HiScoreScreen extends Canvas implements CommandListener {

	/* Start	Modified		08-05-2003		for chinese support	*/
    private static final String[] DEFAULT_HIGH_SCORE_NAMES =
        { "aaa", "bbb", "ccc", "ddd", "eee" };

    private static final int[] DEFAULT_HIGH_SCORE_SCORES =
    	/* Start	Modified	15-05-2003	0 - > 50	*/
        { 4500, 2500, 1500, 500, 50 };
        /* End		Modified	15-05-2003	*/
        //{ 4500, 4000, 3500, 3000, 2500, 2000, 1500, 1000, 500, 0 };
	/* End		Modified		08-05-2003	*/

    private static final int HIGH_SCORE_MAX_NAME_LENGTH = 3;
    private static final String HISCORE_ENTRY_TITLE = "High Score Entry";
    private int m_peakScore;
    private static boolean m_bDrawLoadingScreen;

    private GameMidlet m_pMidlet;
    private HiScore m_pHiScore;
    private Form g_pHiScoreEntryForm;
    private TextField m_pTF_NameEntry;
    private Command m_cmdEnterScore;

	/* Start	Commented		23-04-2003		for chinese support	*/

/*
    private static final String HISCORE_ENTRY_TEXT1_SUFFIX = "A new high score!";
    private static final String HISCORE_ENTRY_NAME_FIELD = "Enter your name:";
    private static final String HISCORE_ENTRY_TEXT2 = "Press DONE and wait...";
    private static final String[] ARR_RANKING_STRINGS = {
        "You did it!  You have usurped all others to become the supreme noser!\n",
        "Hi there! Welcome to the noser elite!\n" ,
        "You are second only to one\n",
        "You must know something\n",
        "You make it look so easy!\n",
        "An outstanding achievement\n",
         "Quite impressive actually\n",
        "An expert with a keypad\n",
         "Not shabby at all!\n",
        "A potential champion!\n",
        "You made the top ten club\n",
    };
*/

	/* End	Commented		23-04-2003	*/


    HiScoreScreen(GameMidlet midlet) {
        m_pMidlet = midlet;

        addCommand(m_pMidlet.m_cmdBack);

        /* Start	Modified		25-04-2003		for chinese support	*/
        g_pHiScoreEntryForm = new Form(Globals.chineseString[Globals.HIS_TXT_OFFSET]);

        m_pTF_NameEntry = new TextField(Globals.chineseString[Globals.HIS_TXT_OFFSET+5],
        							"", HIGH_SCORE_MAX_NAME_LENGTH,
        							TextField.ANY);

        m_cmdEnterScore = new Command(Globals.chineseString[Globals.HIS_TXT_OFFSET+1],
        							Command.SCREEN, 10);
        /* End		Modified		25-04-2003	*/
        g_pHiScoreEntryForm.addCommand(m_cmdEnterScore);
    }


    void showHighScores() {
        if (m_pHiScore == null) {
            m_pHiScore = new HiScore();
            m_pHiScore.readFile(DEFAULT_HIGH_SCORE_NAMES, DEFAULT_HIGH_SCORE_SCORES);
        }
        displayHighScores(-1);
    }


    private void displayHighScores(int highlightPosition) {
        m_pTF_NameEntry.setString("");
        repaint();
        serviceRepaints();
    }


    private void setHighScoreEntry(String name) {
		/* Start	Commented		16-05-2003	no lowercase	*/
        //name = name.toLowerCase();
        /* End		Commented	16-05-2003	*/


        if (m_pHiScore == null) {
            m_pHiScore = new HiScore();
            m_pHiScore.readFile(DEFAULT_HIGH_SCORE_NAMES, DEFAULT_HIGH_SCORE_SCORES);
        }

        // show new high score after we've sorted it
        int highlightPos = m_pHiScore.addScore(name, m_peakScore);
        m_bDrawLoadingScreen = true;
        repaint();
        serviceRepaints();
        m_pHiScore.writeFile();
        m_bDrawLoadingScreen = false;
        displayHighScores(highlightPos);

        setCommandListener(this);
        m_pMidlet.m_pDisplay.setCurrent(this);
	    /* Start	Addition		21-03-2003		for external events	*/
	    m_pMidlet.activeDisplay = this;
		//System.out.println("activeDisplay_hiEntry"+m_pMidlet.activeDisplay);
	    /* End	Addition	21-03-2003	*/

    }


    void setPeakScore(int peakScore) {
        m_peakScore = peakScore;
    }


    void enterHighScore() {
        if (m_pHiScore == null) {
            m_pHiScore = new HiScore();
            m_pHiScore.readFile(DEFAULT_HIGH_SCORE_NAMES, DEFAULT_HIGH_SCORE_SCORES);
        }

        int scoreIndex = m_pHiScore.getIndex(m_peakScore);

        if (scoreIndex != -1) {
            // show enter score for
            g_pHiScoreEntryForm.setCommandListener(this);

            while (g_pHiScoreEntryForm.size() > 0) {
                g_pHiScoreEntryForm.delete(0);
            }
            /* Start	Modified		25-04-2003		for chinese support	*/
            g_pHiScoreEntryForm.append(Globals.chineseString[Globals.HIS_TXT_OFFSET + 3]);
            g_pHiScoreEntryForm.append((m_peakScore)+" \n"+Globals.chineseString[Globals.HIS_TXT_OFFSET+7+scoreIndex]);
            g_pHiScoreEntryForm.append("\n"+Globals.chineseString[Globals.HIS_TXT_OFFSET+4]);
            g_pHiScoreEntryForm.append(m_pTF_NameEntry);
            g_pHiScoreEntryForm.append("\n"+Globals.chineseString[Globals.HIS_TXT_OFFSET+6]);
            /* End		Modified		25-04-2003	*/

            m_pMidlet.m_pDisplay.setCurrent(g_pHiScoreEntryForm);
		    /* Start	Addition		21-03-2003		for external events	*/
		    m_pMidlet.activeDisplay = g_pHiScoreEntryForm;
			//System.out.println("activeDisplay_enter_highscore"+m_pMidlet.activeDisplay);

		    /* End	Addition	21-03-2003	*/


            repaint();
            serviceRepaints();
        } else {
            // show high score form
            setCommandListener(this);
            m_pMidlet.m_pDisplay.setCurrent(this);
		    /* Start	Addition		21-03-2003		for external events	*/
		    m_pMidlet.activeDisplay = this;
			//System.out.println("activeDisplay_highscore_screen"+m_pMidlet.activeDisplay);
		    /* End	Addition	21-03-2003	*/

            displayHighScores(-1);
        }
    }


    public void commandAction(Command command, Displayable displayable) {
        if (command == m_cmdEnterScore) {
            setHighScoreEntry(m_pTF_NameEntry.getString());
        } else {
            m_pMidlet.commandAction(command, displayable);
        }
    }


    protected void keyPressed(int key) {
        if (!m_bDrawLoadingScreen && (getGameAction(key) == Canvas.FIRE)) {
            m_pMidlet.commandAction(m_pMidlet.m_cmdBack, this);
        }
    }


    protected void paint(Graphics g) {
        if (m_bDrawLoadingScreen) {
            // Draw box
            g.setColor(0, 0, 255);
            g.fillRect(Globals.GAMEMENU_BOX_X - 2, Globals.GAMEMENU_BOX_Y - 2, 86, 44);
            g.setColor(255, 0, 0);
            g.fillRect(Globals.GAMEMENU_BOX_X - 1, Globals.GAMEMENU_BOX_Y - 1, 84, 42);

            g.setColor(0, 0, 0);
            g.fillRect(Globals.GAMEMENU_BOX_X, Globals.GAMEMENU_BOX_Y, 82, 40);

            Sprite.drawWord(g, Globals.GAMEMENU_BOX_X + 24, Globals.GAMEMENU_BOX_Y + 15, "Saving");
        } else {
            g.setColor(0x000000);
            g.fillRect(0, 0, Globals.SCREEN_W, Globals.SCREEN_H);

			/* Start		Modified		25-04-2003	for chinese support	*/
			g.setColor(250,250,4);
			g.setFont(Globals.font);
			g.drawString(Globals.chineseString[Globals.HIS_TXT_OFFSET+2],40,13,g.TOP | g.LEFT);
            //Sprite.drawWord(g, 30, 13, hsString[2]);
            Sprite.drawClipped(g, Sprite.IMG_ALL, 0, 0, Sprite.g_arr2ClipInfoStuff, 4, 1); // header+TM
            Sprite.drawClipped(g, Sprite.IMG_ALL, 17, 16, Sprite.g_arr2ClipInfoStuff, 0, 1); // large qbert left
            Sprite.drawClipped(g, Sprite.IMG_ALL, 95, 16, Sprite.g_arr2ClipInfoStuff, 5, 1); // large qbert right
            g.setColor(0xf69435);
            g.drawRect(3, 26, 121, 97);
            g.setColor(0x000000);
            g.drawLine(15, 26, 15 + 14, 26);
            g.drawLine(92, 26, 92 + 14, 26);
            int y = 33;
            /* End		Modified		25-04-2003	*/

            for (int i = 0; i < HiScore.NUM_HISCORES; i++) {
                String displayLine = m_pHiScore.getName(i);
                int displayScore = m_pHiScore.getScore(i);
                if (displayLine == null) {
                    displayLine = DEFAULT_HIGH_SCORE_NAMES[i];
                    displayScore = 0;//DEFAULT_HIGH_SCORE_SCORES[i];
                    //m_pHiScore.addScore(displayLine, displayScore);
                }
				/* Start	Modified		07-05-2003		for chinese support	*/
				/* Start	Modified		15-05-2003	for highscore font	*/
                Sprite.renderHighScore(g, Integer.toString(i + 1), 25 - 10, y );
                /* End		Modified		15-05-2003	*/
	            g.setColor(250,250,4);
				g.drawString(displayLine,25 - 2,y,g.TOP|g.LEFT);
                //Sprite.drawWord(g, 27, y, displayLine);
				/* Start	Modified		15-05-2003	for highscore font	*/
                Sprite.renderHighScore(g, Integer.toString(displayScore), 25 + 90, y );
                /* End		Modified		15-05-2003	*/
                y += 16;
	            /* End		Modified		07-05-2003	*/
            }
        }
    }

	/* Start	Modified	21-03-2003		for external events	*/
    protected void showNotify() {
        try {
			repaint();
			serviceRepaints();
        } catch (Exception ex) {}
    }
	/* End		Modified	21-03-2003	*/

}

⌨️ 快捷键说明

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