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

📄 gamemidlet.java

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

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.io.*;
import javax.microedition.rms.*;



public class GameMidlet extends MIDlet implements CommandListener, Runnable {

    boolean g_bFinished_Game;
    boolean g_bCheatOn;
    boolean m_bSoundOn;
    boolean m_bSavedGame;
    boolean m_bHasBeenSaved;
    Display m_pDisplay;

    Command m_cmdSelect;
    Command m_cmdBack;
    Command m_cmdPause;

    private boolean notFirstTime;
    private boolean m_bInGame;
    private GameModel m_pGameModel;
    private HiScoreScreen m_pHiScoreScreen;
    private MenuScreen m_pMenuScreen;
    private GameScreen m_pGameScreen;
    private TextScreen m_pTextScreen;

    /* Start	Addition		21-03-2003		for external events	*/
    static Displayable activeDisplay;
    /* End	Addition	21-03-2003	*/

    //public GameMidlet() {
    //}


    public void startApp() throws MIDletStateChangeException {
        if (notFirstTime) {
			/* Start	Modified	21-03-2003		for external events*/
			if(activeDisplay != null){
				//System.out.println("activeDisplay_startapp"+activeDisplay);
				m_pDisplay.setCurrent(activeDisplay);
			}
            //if (m_pGameModel != null && m_pGameScreen != null) {
            //    m_pGameScreen.repaint();
            //    m_pGameScreen.serviceRepaints();
            //}
			/* End		Modified	21-03-2003 */
        } else {
            notFirstTime = true;
			/* Start	Addition		23-04-2003	chinese support	*/
			Lang ln = new Lang();
			ln.splitStrings();
			/* End		Addition		23-04-2003	*/

            m_pDisplay = Display.getDisplay(this);
            m_pMenuScreen = new MenuScreen(this);
            m_pDisplay.setCurrent(m_pMenuScreen);
		    /* Start	Addition		21-03-2003		for external events	*/
		    activeDisplay = m_pMenuScreen;
			//System.out.println("activeDisplay_startapp_first"+activeDisplay);
		    /* End	Addition	21-03-2003	*/

            m_pMenuScreen.repaint();
            m_pMenuScreen.serviceRepaints();

            new Thread(this).start();
        }
    }


    public void run() {
		/* Start	Modified	25-04-2003		for chinese support	*/
        m_cmdPause = new Command(Globals.chineseString[Globals.COMS_TXT_OFFSET+2], Command.OK, 1);
        m_cmdSelect = new Command(Globals.chineseString[Globals.COMS_TXT_OFFSET+1], Command.OK, 1);
        m_cmdBack = new Command(Globals.chineseString[Globals.COMS_TXT_OFFSET+3], Command.BACK, 1);
        /* End		Modified	25-04-2003	*/

        Sprite.initImages();

        readOptions();
        if (!m_bSavedGame) {
            m_pMenuScreen.level1Index = 1;
        }

        try { Thread.sleep(2000); } catch (Exception ex) {} // this needs to be improved

        m_pMenuScreen.preSplashScreenDone = true;
        m_pMenuScreen.repaint();
        m_pMenuScreen.serviceRepaints();

        m_pMenuScreen.addCommand(m_cmdSelect);
        m_pMenuScreen.addCommand(m_cmdBack);

        m_pMenuScreen.m_pImgPreSplash = null;

        m_pHiScoreScreen = new HiScoreScreen(this);
        m_pTextScreen = new TextScreen(this);
    }


    public void pauseApp() {
        if (m_pGameModel != null && !m_pGameModel.g_bPaused) {
            pauseGame();
        }
    }


    public void destroyApp(boolean unconditional) throws MIDletStateChangeException {
        saveOptions();
        if (m_pGameModel != null) {
            m_pGameModel.exit();
            m_pGameModel = null;
        }
        m_pDisplay.setCurrent(null);
	    /* Start	Addition		21-03-2003		for external events	*/
	    activeDisplay = null;
	    /* End	Addition	21-03-2003	*/

    }


    public void commandAction(Command command, Displayable displayable) {
        try {
            if (displayable == m_pMenuScreen) {
                if (command == m_cmdBack) {
                    if (m_pMenuScreen.level3Active) {
                        m_pMenuScreen.level3Active = false;
                        m_pMenuScreen.repaint();
                    } else if (m_pMenuScreen.level2Active) {
                        m_pMenuScreen.level2Active = false;
                        m_pMenuScreen.repaint();
                    } else {
                        exitApp();
                    }
                } else if (command == m_cmdSelect) {
                    switch (m_pMenuScreen.getMenuAction()) {

                    case MenuScreen.MENU_RESUME:
                        playSavedGame();
                    break;

                    case MenuScreen.MENU_PLAY:
                        newGame();
                    break;

                    case MenuScreen.MENU_MENU:
                        m_pMenuScreen.level2Active = true;
                        m_pMenuScreen.level2Index = 0;
                        m_pMenuScreen.repaint();
                    break;

                    case MenuScreen.MENU_QUIT:
                        exitApp();
                    break;

                    case MenuScreen.MENU_HIGHSCORES:
                        showHighScores();
                    break;

                    case MenuScreen.MENU_AUDIO:
                        m_pMenuScreen.level3Active = true;
                        m_pMenuScreen.level3Index = (m_bSoundOn ? 0 : 1);
                        m_pMenuScreen.repaint();
                    break;

                    case MenuScreen.MENU_AUDIOON:
                        m_pMenuScreen.level3Active = false;
                        m_bSoundOn = true;
                        m_pMenuScreen.repaint();
                    break;

                    case MenuScreen.MENU_AUDIOOFF:
                        m_pMenuScreen.level3Active = false;
                        m_bSoundOn = false;
                        m_pMenuScreen.repaint();
                    break;

                    // SD case MenuScreen.MENU_LANGUAGE:
                    // break;

                    case MenuScreen.MENU_CREDITS:
                        showText(TextScreen.TEXT_CREDITS);
                    break;

                    case MenuScreen.MENU_HELP:
                        showText(TextScreen.TEXT_HELP);
                    break;

                    case MenuScreen.MENU_MAIN:
                        m_pMenuScreen.level2Active = false;
                        m_pMenuScreen.repaint();
                    break;
                    }
                }
            } else if (displayable == m_pGameScreen) {
                if (command == m_cmdPause && m_pGameModel.g_Game_Mode != Globals.MODE_GAMEOVER) {
                    pauseGame();
                } else if (command == m_cmdSelect) {
                    switch (m_pGameScreen.m_selectedIndex) {
                    case GameScreen.MENU_RESUME:
                        resumeGame();
                    break;

                    case GameScreen.MENU_HELP:
                        m_bInGame = true;
                        showText(TextScreen.TEXT_HELP);
                    break;

                    case GameScreen.MENU_SAVEQUIT:
                    	/* Start	Addition	16-05-2003	bug fix	*/
                        m_pGameModel.pause();
                        /* End		Addition	16-05-2003	*/
                        saveAndQuit();
                    break;
                    }
                } else if (command == m_cmdBack) {
                    if (m_pGameModel.g_bPaused) {
                        resumeGame();
                    } else {
                        m_pGameModel.pause();
                        saveAndQuit();
                    }
                }
            } else if (displayable == m_pTextScreen) {
                if (command == m_cmdBack) {
                    m_pTextScreen.stopped = true;
                    if (m_bInGame) {
                        m_pGameModel.m_pBackGroundSprite.forceRedraw();
                        m_bInGame = false;
                        m_pGameScreen.m_selectedIndex = 1;
                        resumeGame(); // SD ??
                        pauseGame(); // SD ??
                    } else {
                        showMenuScreen();
                    }
                }
            } else if (displayable == m_pHiScoreScreen) {
                if (command == m_cmdBack) {
                    showMenuScreen();
                }
            }
        } catch (Exception ex) {
            System.err.println("GameMidlet.commandAction: " + ex); // SD
            ex.printStackTrace(); // SD
        }
    }


    private void playSavedGame() {
        if (m_pGameScreen == null) { // SD
            m_pGameScreen = new GameScreen(this);
            m_pGameModel = new GameModel(this, m_pGameScreen);
            m_pGameScreen.setModel(m_pGameModel);
        }
        m_bSavedGame = false;
        m_bHasBeenSaved = false;
        m_pMenuScreen.level1Index = 1;

⌨️ 快捷键说明

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