📄 xiyou.java
字号:
if (Debug.SHOW_TIME_COST)
Debug.s_time5 = System.currentTimeMillis();
//Draw interface here
DrawInterface();
if (Debug.SHOW_TIME_COST)
Debug.s_time5 = System.currentTimeMillis() - Debug.s_time5;
if (Debug.SHOW_TIME_COST)
Debug.ShowRate();
if(s_gameStatus == DGameStatus.GS_ACTION)
Jiaose.ExeGameOver();
}
//the tralier before loading into mainmenu
public static final int TEST_SCENE_INDEX = 9;
public static final int PRELUDE_SCENE_INDEX = 10;
public static void InitializePrelude()
{
try
{
if ((s_ctrGameStatus & 1) != 0)
Debug.Mem("begin: " + s_ctrGameStatus);
switch (s_ctrGameStatus)
{
case 1:
Jiaose.InitPrelude();
InitSound();
/*
LoadSounds(SOUND_INMENU);
//*/
break;
case 3:
Jiaose.LoadGlobalData();
break;
case 5:
LoadMap(PRELUDE_SCENE_INDEX);
InitializeCamera();
Jiaose.PRELUDE_MAP_W = ((LAST_SCENE_W_BY_TILE ) << s_tileBits) / 5;
InitializeBgHuanchong();
break;
case 7:
InitSmallMap();
break;
case 9:
Jiaose.LoadScene(PRELUDE_SCENE_INDEX);
break;
case 11:
Debug.Mem("a: " );
Donghua.LoadAnimations(Jiaose.s_sceneAnimationMask);
Jiaose.SetAnims();
for (int i = 0; i < Donghua.s_anims.length; i++)
{
if (Donghua.s_anims[i] != null && Donghua.s_anims[i].m_imageFormat == Donghua.IMAGE_FORMAT_GLI)
{
Donghua.s_anims[i].CreateScenePals();
}
}
//*/
break;
case 13:
//SheJintou(Jiaose.s_ajiaoses[0], true, true);
SheJintou(Jiaose.s_preludeMapId * Jiaose.PRELUDE_MAP_W + Jiaose. PRELUDE_OFFSET_X, 0, 0, true);
break;
case 15:
SetGameStatus(DGameStatus.GS_PRELUDE);
s_splash = null;
break;
default:
System.gc();
Thread.sleep(SLEEP_TIME);
break;
}
if ((s_ctrGameStatus & 1) != 0)
Debug.Mem("end: " + s_ctrGameStatus);
}
catch (Exception e)
{
e.printStackTrace();
}
}
public static final int MAIN_SCENE_INDEX = 9;
//for menu
public static void InitialMenu()
{
try
{
if ((s_ctrGameStatus & 1) != 0)
Debug.Mem("begin: " + s_ctrGameStatus);
switch (s_ctrGameStatus)
{
case 1:
FreeMenuRes();
Donghua.FreeAnimation();
FreeBgHuanchong();
stopSound();
break;
case 3:
break;
case 5:
Jiaose.FreeBlood();
SaveOrLoad(false);
break;
case 7:
s_menuBg = Image.createImage("/menu_bg.png");
case 9:
s_menuBg2 = Image.createImage("/menu_bg2.png");
break;
case 11:
LoadMap(MAIN_SCENE_INDEX);
break;
case 13:
InitializeCamera();
break;
case 15:
Jiaose.LoadScene(MAIN_SCENE_INDEX);
break;
case 17:
Donghua.LoadAnimations(Jiaose.s_sceneAnimationMask);
Jiaose.SetAnims();
for (int i = 0; i < Donghua.s_anims.length; i++)
{
if (Donghua.s_anims[i] != null && Donghua.s_anims[i].m_imageFormat == Donghua.IMAGE_FORMAT_GLI)
{
Donghua.s_anims[i].CreateScenePals();
}
}
break;
case 19:
LoadStrings(DWorld.STR_BLOCK_ID_MENU);
m_imageData = new int[DATA_SIZE_TMP]; //font 14
s_imgPals = new int[2][256];
s_menuArrow = createImageFormGli("/interface.gli", 0 , true);
//s_menuArrow = Image.createImage("/interface.png");
break;
case 21:
s_imgFont[1] = createImageFormGli("/font_14_01.gli" , 0 , true);
break;
case 23:
s_imgFont[2] = createImageFormGli("/font_11.gli" , 0 , true);
break;
case 25:
s_imgFont[3] = createImageFormGli("/font_10.gli" , 0 , true);
m_imageData = null;
s_imgPals = null;
break;
case 27:
SheJintou(0 , 0 , 0, true);;
SetGameStatus(DGameStatus.GS_MAIN_MENU);
SetMenuStatus(MS_DEFAULT);
break;
default:
System.gc();
Thread.sleep(SLEEP_TIME);
break;
}
if ((s_ctrGameStatus & 1) != 0)
Debug.Mem("end: " + s_ctrGameStatus);
}
catch (Exception e)
{
e.printStackTrace();
}
}
//for free menu resource
public static void FreeMenuRes()
{
s_menuBg = null;
s_menuBg2 = null;
s_menuArrow = null;
//s_imgFont[0] = null;
s_imgFont[1] = null;
s_imgFont[2] = null;
s_imgFont[3] = null;
s_splash=null;
s_interfaceFromGLI = null;
//FreeSounds();
}
public static final int END_GAME_SCENE_INDEX = 11;
public static void InitEnd()
{
try
{
if ((s_ctrGameStatus & 1) != 0)
Debug.Mem("begin: " + s_ctrGameStatus);
switch (s_ctrGameStatus)
{
case 1:
FreeMenuRes();
FreeBgHuanchong();
s_splash = Image.createImage("/chengsmall.png");
Donghua.FreeAnimation();
break;
case 3:
LoadMap(END_GAME_SCENE_INDEX);
Jiaose.s_level = 9;
SaveOrLoad(true);
InitializeCamera();
break;
case 5:
//InitializeBgHuanchong();
LoadStrings(DWorld.STR_BLOCK_ID_MENU);
break;
case 7:
Jiaose.LoadScene(END_GAME_SCENE_INDEX);
break;
case 9:
Donghua.LoadAnimations(Jiaose.s_sceneAnimationMask);
Jiaose.SetAnims();
for (int i = 0; i < Donghua.s_anims.length; i++)
{
if (Donghua.s_anims[i] != null && Donghua.s_anims[i].m_imageFormat == Donghua.IMAGE_FORMAT_GLI)
{
Donghua.s_anims[i].CreateScenePals();
}
}
break;
case 11:
SheJintou(0 , 0 , 0, true);;
InitCameralStart();
SetGameStatus(DGameStatus.GS_END_GAME);
break;
default:
System.gc();
Thread.sleep(SLEEP_TIME);
break;
}
if ((s_ctrGameStatus & 1) != 0)
Debug.Mem("end: " + s_ctrGameStatus);
}
catch (Exception e)
{
e.printStackTrace();
}
}
public static void InitSmallMap()
{
try
{
img_smallMap = Image.createImage("/chengsmall.png");
s_gBgHuanchong.setClip(0, 0 , PINGMUDDD.sssCHUANNN_WIDTH , PINGMUDDD.sssCHUANNN_HEIGHT);
s_gBgHuanchong.drawImage(img_smallMap , 0 , 0 , 0);
img_smallMap = null;
}
catch(Exception e)
{
}
}
//do gli special
static int m_imageData[];
static int s_imgPals[][];
public static Image createImageFormGli(String gliName , int palIndex, boolean needCreate) throws Exception
{
int img_w,img_h;
int imageSize;
int palBits;
int maskColor;
DataInputStream dis = new DataInputStream(gliName.getClass().
getResourceAsStream(gliName));
dis.skipBytes(4); // skipped flag of GLI
img_w = dis.readUnsignedShort();//.readUnsignedByte();//readUnsignedShort
img_h = dis.readUnsignedShort();
dis.skipBytes(1);
palBits = dis.readUnsignedByte();
maskColor = 0xFF >> (8 - palBits);
imageSize = dis.readInt();
int palNum = dis.readUnsignedByte();
int palLen = dis.readUnsignedByte();
int palColor;
s_imgPals = new int[palNum][];
for (int i=0; i<palNum; i++)
{
s_imgPals[i] = new int[palLen];
for (int ii=0; ii<palLen; ii++)
{
palColor = dis.readInt();
// remove transparent
if ((palColor & 0xFF000000) == 0)
palColor = 0;
s_imgPals[i][ii] = palColor;//Device.RGB4444to8888(palColor);
}
}
int pos = 0;
int size = img_w * img_h;
int data;
int shumu;
int color;
int wend;
//m_imageData = new int[size];
while (pos < size)
{
data = dis.readUnsignedByte() & 0xFF;
shumu = (data >> palBits) + 1;
color = s_imgPals[palIndex][data & maskColor];
//if (color != 0)
{
wend = pos + shumu;
while (pos < wend)
{
m_imageData[pos++] = color;
}
}
//else pos += shumu;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -