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

📄 gamemanager.java

📁 一个j2me的小游戏
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
//import com.nokia.mid.ui.*;
import java.util.*;
import javax.microedition.lcdui.*;


public class GameManager extends Canvas implements GameConstant
{

    static final int REFRESH_RATE = 80;
    static final int LOGO_STAGE = 0;
    static final int TITLE_STAGE = 1;
    static final int START_GAME_STAGE = 2;
    static final int PLAY_STAGE = 3;
    static final int GAME_END_STAGE = 4;
    static final int PAUSE_STAGE = 5;
    static final int LOAD_GAME_STAGE = 6;
    static final int LOAD_SAVE_STAGE = 7;
    static final int HELP_STAGE = 8;
    static Random random = new Random();
    public static Font font1 = Font.getFont(32, 0, 8);
    private static int eventId = -1;
    private static int eventTimer = -1;
    private static boolean playEvent = false;
    private Timer timer;
    private TimerTask timerTask;
    private Image cursorImg;
    private Image playerImg1;
    private Image playerImg2;
    private int gameStage;
    private int oldGameStage;
    private int delayStageChange;
    private int gameMode;
    private int temp01;
    private int temp02;
    private int temp03;
    private boolean toggle;
    private boolean newStage;
    private boolean tempBool01;
    private boolean lockSortDrawing;
    private boolean gameEnd;
    private boolean bossStage;
    private boolean isBossDead;
    private int stopEnemy;
    private boolean isKeyUp;
    private boolean isKeyDown;
    private boolean isKeyLeft;
    private boolean isKeyRight;
    private boolean isKeyFire;
    private int scrOffsetX;
    private int scrOffsetY;
    private int drawLocY[];
    private int drawOrder[];
    private int playerAction;
    private boolean walkToggle;
    private Human player;
    private Human boss01;
    private Enemy enemy[];
    private MovingObject movObj[];
    private Map map;
    private AfterDark main;
    ThaiManager thMan;
    public static boolean drawStupidLoop = false;

    public GameManager()
    {
        timer = null;
        timerTask = null;
        cursorImg = null;
        playerImg1 = null;
        playerImg2 = null;
        gameStage = 0;
        oldGameStage = 0;
        delayStageChange = 20;
        gameMode = 0;
        temp01 = 0;
        temp02 = 0;
        temp03 = 0;
        toggle = false;
        newStage = true;
        tempBool01 = false;
        lockSortDrawing = false;
        gameEnd = false;
        bossStage = false;
        isBossDead = false;
        stopEnemy = 0;
        isKeyUp = false;
        isKeyDown = false;
        isKeyLeft = false;
        isKeyRight = false;
        isKeyFire = false;
        scrOffsetX = 0;
        scrOffsetY = 0;
        drawLocY = null;
        drawOrder = null;
        playerAction = 1;
        walkToggle = false;
        player = null;
        boss01 = null;
        enemy = null;
        movObj = null;
        map = null;
        main = null;
        thMan = null;
    }

    public void Initial(AfterDark main)
    {
        this.main = main;
        LoadInitialGameImage();
        player = new Human(20, 127, 444, 16, 24);
        player.Initial("Kaida", 20, "/Images/Player/player01.png", 100, 24);
        boss01 = new Human(22, -500, -500, 16, 24);
        boss01.Initial("Zeus", 22, "/Images/Enemy/boss01.png", 500, 24);
        boss01.SetHP(0);
        boss01.SetDestroy(true);
        enemy = new Enemy[5];
        for(int i = 0; i < enemy.length; i++)
        {
            enemy[i] = new Enemy(0, 120 + i * 24, 220, 24, 24);
            enemy[i].Initial("Ghost", 0 + i, "/Images/Enemy/enemy.png", 10, 24);
            enemy[i].SetHP(0);
            enemy[i].SetDestroy(true);
        }

        movObj = new MovingObject[3];
        for(int i = 0; i < movObj.length; i++)
        {
            movObj[i] = new MovingObject(30 + i, -1, -1, 31, 31);
            movObj[i].SetDestroy(true);
        }

        thMan = new ThaiManager("/Images/font.png", 176, 208);
        map = new Map();
        map.InitialGameData();
        map.Initial(-1);
    }

    public void Start()
    {
        Reset();
    }

    public void Stop()
    {
        try
        {
            timerTask.cancel();
            timer.cancel();
        }
        catch(Exception e) 
        {
        	
        }
    }

    public void Run()
    {
        timer = new Timer();
        timer.schedule(new TimerTask() 
        {
        	public void run()
            {
                switch(gameStage)
                {
                case 0: // '\0'
                    if(newStage)
                    {
                        newStage = false;
                        delayStageChange = 30;
                        LoadInitialGameImage();
                        break;
                    }
                    if(delayStageChange > 0)
                    {
                        delayStageChange--;
                    } 
                    else
                    {
                        delayStageChange = 0;
                        ChangeStage(1);
                    }
                    break;

                case 1: // '\001'
                default:
                    if(newStage)
                    {
                        newStage = false;
                        toggle = false;
                        delayStageChange = 150;
                        break;
                    }
                    if(delayStageChange > 0)
                    {
                        delayStageChange--;
                    } else
                    {
                        delayStageChange = 0;
                        ChangeStage(0);
                    }
                    break;

                case 2: // '\002'
                    if(newStage)
                    {
                        newStage = false;
                        toggle = false;
                        tempBool01 = false;
                        isBossDead = false;
                        temp01 = 5;
                        gameMode = 0;
                        LoadPlayerImage();
                        break;
                    }
                    if(isBossDead)
                    {
                        if(--delayStageChange <= 0)
                        {
                            isBossDead = false;
                            ChangeStage(6);
                        } else
                        {
                            temp01 -= 1;
                        }
                        break;
                    }
                    if(tempBool01)
                    {
                        temp01 = 200;
                        delayStageChange = 470;
                        isBossDead = true;
                    }
                    break;

                case 3: // '\003'
                    if(newStage)
                    	
                    {
                        newStage = false;
                        toggle = false;
                        if(!bossStage)
                        {
                            bossStage = false;
                            gameEnd = false;
                        }
                        delayStageChange = 10;
                        scrOffsetX = 88 - player.GetCenterLocationX();
                        scrOffsetY = 89 - player.GetCenterLocationY();
                        CollectDrawingObject(player.GetLegLocationY(), scrOffsetX, scrOffsetY);
                        break;
                    }
                    if(delayStageChange > 0)
                    {
                        delayStageChange--;
                        break;
                    }
                    scrOffsetX = 88 - player.GetCenterLocationX();
                    scrOffsetY = 89 - player.GetCenterLocationY();
                    if(!GameManager.playEvent)
                    {
                        if(isKeyUp)
                        {
                            player.KeyUp();
                        } else
                        if(isKeyDown)
                        {
                            player.KeyDown();
                        } else
                        if(isKeyLeft)
                        {
                            player.KeyLeft();
                        } else
                        if(isKeyRight)
                        {

⌨️ 快捷键说明

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