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

📄 gamemanager.java

📁 又是一款j2me 游戏
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
// Decompiled by DJ v3.7.7.81 Copyright 2004 Atanas Neshkov  Date: 2005-4-9 12:51:46
// Home Page : http://members.fortunecity.com/neshkov/dj.html  - Check often for new version!
// Decompiler options: packimports(3)
// Source File Name:   GameManager.java

package girl60;

import com.nokia.mid.ui.*;
import java.util.*;
import javax.microedition.lcdui.*;

// Referenced classes of package AfterDark:
//            Human, Enemy, MovingObject, ThaiManager,
//            Map, Storage, GameConstant, Rectangle,
//            Room, AfterDark

public class GameManager extends FullCanvas
    implements GameConstant
{

    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, "/AfterDark/Images/Player/player01.png", 100, 24);
        boss01 = new Human(22, -500, -500, 16, 24);
        boss01.Initial("Zeus", 22, "/AfterDark/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, "/AfterDark/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("/AfterDark/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;
                          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)
                            player.KeyRight();
                        else
                        if(isKeyFire)
                            player.KeyFire();
                        player.Run();
                        if(player.GetAction() != 10)
                        {
                            if(boss01 != null)
                                boss01.Run(player.GetCenterLocationX(), player.GetCenterLocationY());
                            if(stopEnemy > 0)
                            {
                                stopEnemy--;
                            } else
                            {
                                for(int i = 0; i < enemy.length; i++)
                                    enemy[i].Run(player.GetCenterLocationX(), player.GetCenterLocationY());

                                for(int i = 0; i < movObj.length; i++)
                                    if(!movObj[i].IsDestroy())
                                        movObj[i].Run();

                            }
                        }
                        CollisionDetection();
                        int posX = player.GetPosX();
                        int posY = player.GetPosY();
                        if(Room.IsLinkAreaId(Room.GetFloorData(posX, posY)))
                            if(map.GetRoomLinkId(posX, posY) != -1)
                                ChangeStage(6);
                            else
                            if( (GameManager.eventId = map.GetEventId(posX, posY)) != -1)//mod by qyj
                            {
                                GameManager.ShowEvent(GameManager.eventId);
                                player.SetKeyHold(false);
                                SetControlKeys(false, false, false, false, false);
                            }
                        if(bossStage && !isBossDead)
                            if(player.GetType() == 21)
                            {
                                if(enemy[1].IsDead() || enemy[1].GetHP() <= 30)
                                {
                                    Room.SetFloorData(-1, 4, 8);
                                    Map.UnlockDoorId(12, 2, 0);

⌨️ 快捷键说明

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