📄 gamemanager.java
字号:
// 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 + -