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