📄 jiaose.java
字号:
static boolean IsDie(int ajiaoseID)
{
return ((s_originData[s_ajiaosepanYi[ajiaoseID] + 6] & DWorld.ACTOR_FLAG_DIE) != 0);
}
static boolean InActiveZone(int flag, int offset)
{
if(Xiyou.s_gameStatus == DGameStatus.GS_MAIN_MENU)
return true;
//
if(Xiyou.s_gameStatus == DGameStatus.GS_ACTION ||
Xiyou.s_gameStatus == DGameStatus.GS_PLAY_AGAIN ||
Xiyou.s_gameStatus == DGameStatus.GS_ENTER_NAME ||
Xiyou.s_gameStatus == DGameStatus.GS_HIGHSCORE_INGAME)
{
if(s_isActiveGameScene)
{
if((flag & DWorld.ACTOR_FLAG_GAMESCENE) == 0)
return false;
}
else
{
if((flag & DWorld.ACTOR_FLAG_GAMESCENE) != 0)
return false;
}
}
if ((flag & DWorld.ACTOR_FLAG_DIE) != 0 /* ||(flag & DWorld.ACTOR_FLAG_MANUAL_ACTIVED) == 0*/)
{
return false;
}
if ( (flag & DWorld.ACTOR_FLAG_IGNORE_ACTIVE_ZONE) != 0)
{
return true;
}
int left = s_activeZones[offset++];
int top = s_activeZones[offset++];
if (Xiyou.s_jingtouX + PINGMUDDD.sssCHUANNN_WIDTH < left
|| Xiyou.s_jingtouY + PINGMUDDD.sssCHUANNN_HEIGHT < top)
{
return false;
}
int right = s_activeZones[offset++];
int bottom = s_activeZones[offset++];
if (Xiyou.s_jingtouX > right
|| Xiyou.s_jingtouY > bottom)
{
return false;
}
return true;
}
void CleanFangjian()
{
m_flag = 0;
for (int i = 0; i < ALLOCATE_ACTOR_MAX_PARA_NUM; i++)
m_parameters[i] = -1;
m_roomID = -1;
}
void SetAliveFlag(boolean isAlive)
{
if (isAlive)
{
if ((m_flag & DWorld.ACTOR_FLAG_DIE) != 0) m_flag -= DWorld.ACTOR_FLAG_DIE;
}
else
{
if ((m_flag & DWorld.ACTOR_FLAG_DIE) == 0) m_flag += DWorld.ACTOR_FLAG_DIE;
}
}
void Die(boolean isTrue)
{
SetAliveFlag(false);
DisallocJiaoses(this, isTrue);
}
void Parameters2Varible()
{
}
public int m_diTUX;
public int m_diTUY;
public void Draw(Graphics g, int jingtouX, int jingtouY)
{
int scenePalID = 0;
m_anim.Draw(g, (m_x >> 8) - jingtouX + PINGMUDDD.sssCHUANNN_LEFT, (m_y >> 8) - jingtouY + PINGMUDDD.sssCHUANNN_TOP,
m_flipX, m_flipY, m_frameID, scenePalID, true);
}
public void Draw(Graphics g, int x, int y, boolean flipX, boolean flipY, int frameID, int scenePalID)
{
m_anim.Draw(g, x, y, flipX, flipY, frameID, scenePalID, false);
}
static final int DYNAMIC_ACTOR_DRAW_OFF_Y = 0;
public static final int CAMERA_LIMIT_ADD = 20;
public boolean IsOutOfCamera()
{
if(m_ajiaoseClassID == DWorld.ACTOR_CLASS_ID_CROCODILEBITED)return false;
GetJiaosesHezzzzzzInfo( BOX_TYPE_COLLISION, s_hezzz1 );
return (s_hezzz1[INDEX_BOX_LEFT] > Xiyou.s_jingtouX + PINGMUDDD.sssCHUANNN_WIDTH + CAMERA_LIMIT_ADD ||
s_hezzz1[INDEX_BOX_RIGHT] < Xiyou.s_jingtouX - CAMERA_LIMIT_ADD ||
s_hezzz1[INDEX_BOX_TOP] > Xiyou.s_jingtouY + PINGMUDDD.sssCHUANNN_HEIGHT + CAMERA_LIMIT_ADD ||
s_hezzz1[INDEX_BOX_BOTTOM] < Xiyou.s_jingtouY - CAMERA_LIMIT_ADD) ;
}
public static void DrawJiaosess(Graphics g, int jingtouX, int jingtouY)
{
if (s_freeFangjianID < 0)
s_freeFangjianID = 0;
if(Xiyou.s_gameStatus == DGameStatus.GS_PLAY_AGAIN)return;
if(Jiaose.s_isClosed && Xiyou.s_gameStatus == DGameStatus.GS_ACTION)
{
DrawBlood(g , jingtouX, jingtouY);
}
Jiaose a;
int insertPos;
s_inCameraJiaosesCount = 0;
for (int i = 0; i < s_freeFangjianID; i++)
{
a = s_ajiaoses[i];
if(Xiyou.s_gameStatus == DGameStatus.GS_ACTION && a.IsOutOfCamera())continue;
if(a.m_ajiaoseClassID == DWorld.ACTOR_CLASS_ID_LAUNCH && a.m_actionID == DWorld.ACTION_ID_LAUNCH_INDICATOR ||
a.m_ajiaoseClassID == DWorld.ACTOR_CLASS_ID_LAUNCH && a.m_actionID == DWorld.ACTION_ID_LAUNCH_LAUNCH_FLY ||
a.m_ajiaoseClassID == DWorld.ACTOR_CLASS_ID_FLY_HURT && a.m_actionID != DWorld.ACTION_ID_FLYHURT_FLY_HURT_13
&& a.m_actionID != DWorld.ACTION_ID_FLYHURT_BLOOD)
{
a.m_y += PINGMUDDD.sssCHUANNN_HEIGHT << 8;
}
if(a.m_ajiaoseClassID == DWorld.ACTOR_CLASS_ID_FLY_HURT && a.m_actionID == DWorld.ACTION_ID_FLYHURT_FIRE)
{
a.m_y += PINGMUDDD.sssCHUANNN_HEIGHT << 8;
}
if(a.m_ajiaoseClassID == DWorld.ACTOR_CLASS_ID_COLLIDEHEAD ||
(s_windPower == 0 && a.m_ajiaoseClassID == DWorld.ACTOR_CLASS_ID_DRAGONBITE &&
(a.m_actionID == DWorld.ACTION_ID_DRAGON_FLAG||
a.m_actionID == DWorld.ACTION_ID_DRAGON_FLAG3)) ||
(s_isActiveGameScene && ((a.m_flag & DWorld.ACTOR_FLAG_GAMESCENE) == 0)))
{
continue;
}
if (a.m_level != LV_OTHER)
{
if (a.m_level == LV_BG)
{
if(a.m_ajiaoseClassID == DWorld.ACTOR_CLASS_ID_FLY_HURT && a.m_actionID == DWorld.ACTION_ID_FLYHURT_BLOOD)
s_cutBlood = true;
a.Draw(g, jingtouX, jingtouY);
if(a.m_ajiaoseClassID == DWorld.ACTOR_CLASS_ID_FLY_HURT && a.m_actionID == DWorld.ACTION_ID_FLYHURT_BLOOD)
s_cutBlood = false;
a.GoNextZhennnnnn();
}
else
{
insertPos = 0;
while (insertPos < s_inCameraJiaosesCount)
{
if (s_inCameraJiaosess[insertPos].m_level == LV_BG ||
s_inCameraJiaosess[insertPos].m_level == LV_OTHER)
break;
if (s_inCameraJiaosess[insertPos].m_level < a.m_level)
insertPos++;
else if (s_inCameraJiaosess[insertPos].m_level > a.m_level)
break;
else if (s_inCameraJiaosess[insertPos].m_y < a.m_y)
insertPos++;
else
break;
}
for (int j = s_inCameraJiaosesCount; j > insertPos; j--)
s_inCameraJiaosess[j] = s_inCameraJiaosess[j - 1];
s_inCameraJiaosess[insertPos] = a;
s_inCameraJiaosesCount++;
}
}
if(a.m_ajiaoseClassID == DWorld.ACTOR_CLASS_ID_FLY_HURT && a.m_actionID == DWorld.ACTION_ID_FLYHURT_FIRE)
{
a.m_y -= PINGMUDDD.sssCHUANNN_HEIGHT << 8;
}
if(a.m_ajiaoseClassID == DWorld.ACTOR_CLASS_ID_LAUNCH && a.m_actionID == DWorld.ACTION_ID_LAUNCH_INDICATOR||
a.m_ajiaoseClassID == DWorld.ACTOR_CLASS_ID_LAUNCH && a.m_actionID == DWorld.ACTION_ID_LAUNCH_LAUNCH_FLY||
a.m_ajiaoseClassID == DWorld.ACTOR_CLASS_ID_FLY_HURT && a.m_actionID != DWorld.ACTION_ID_FLYHURT_FLY_HURT_13
&& a.m_actionID != DWorld.ACTION_ID_FLYHURT_BLOOD)
{
a.m_y -= PINGMUDDD.sssCHUANNN_HEIGHT << 8;
}
}
jingtouY += DYNAMIC_ACTOR_DRAW_OFF_Y;
for (int i = 0; i < s_inCameraJiaosesCount; i++)
{
a = s_inCameraJiaosess[i];
if (!((a.m_flag & DWorld.ACTOR_FLAG_INVISIBLE) != 0))
{
if (a.m_isStaticJiaoses)
a.Draw(g, jingtouX, jingtouY - DYNAMIC_ACTOR_DRAW_OFF_Y);
else
{
a.Draw(g, jingtouX, jingtouY);
}
a.GoNextZhennnnnn();
}
}
if(s_isTralier)
DrawcHUILEScene(g, jingtouX, jingtouY);
}
public static void MarchJiaosess()
{
Jiaose a;
for (int i = 0; i < s_ajiaoseCount; i++)
{
a = s_ajiaoses[i];
if (a.m_level != LV_OTHER)
{
a.GoNextZhennnnnn();
}
}
}
public int m_actionID;
public boolean m_actionCircular = false;
public boolean m_actionOver;
public int m_embeddingZhennnnnnID;
public int m_frameID;
public int m_frameDuration;
public boolean m_flipX;
public boolean m_flipY;
public void SetAction(int newActionID, boolean mustChange)
{
if (!mustChange && m_actionID == newActionID)
return;
m_actionID = newActionID;
m_embeddingZhennnnnnID = 0;
m_frameID = m_anim.GetZhennnnnnID(m_actionID, 0);
m_frameDuration = 0;
m_actionOver = false;
shenJIIIIIIIHezzzzzzesInfo();
SetCircular();
}
public void GoNextZhennnnnn()
{
m_embeddingZhennnnnnID++;
if (m_embeddingZhennnnnnID >= m_anim.m_actions[m_actionID].length)
{
m_actionOver = true;
if (m_actionCircular)
m_embeddingZhennnnnnID = 0;
else m_embeddingZhennnnnnID--;
}
m_frameID = m_anim.m_actions[m_actionID][m_embeddingZhennnnnnID] & 0x00FF ;
m_frameDuration = 0;
}
void shenJIIIIIIIMechInfo()
{
short[] mechModel = m_anim.m_mechModel;
int offset = m_actionID << 2;
m_vX = mechModel[offset+0];
m_vY = -mechModel[offset+1];
m_aX = mechModel[offset+2];
m_aY = -mechModel[offset+3];
if ( m_flipX )
{
m_vX = -m_vX;
m_aX = -m_aX;
}
}
public static final int INDEX_BOX_LEFT = 0;
public static final int INDEX_BOX_TOP = 1;
public static final int INDEX_BOX_RIGHT = 2;
public static final int INDEX_BOX_BOTTOM = 3;
public static final int INDEX_BOX_FRONT = 4;
public static final int INDEX_BOX_BACK = 5;
void shenJIIIIIIIHezzzzzzesInfo()
{
try {
int offset = m_frameID * 4;
if (m_flipX)
{
m_collisionHezzzzzz[INDEX_BOX_LEFT] = - m_anim.m_colHezzzzzz[offset + INDEX_BOX_RIGHT];
m_collisionHezzzzzz[INDEX_BOX_RIGHT] = - m_anim.m_colHezzzzzz[offset + INDEX_BOX_LEFT];
m_collisionHezzzzzz[INDEX_BOX_FRONT] = m_collisionHezzzzzz[INDEX_BOX_LEFT];
m_collisionHezzzzzz[INDEX_BOX_BACK] = m_collisionHezzzzzz[INDEX_BOX_RIGHT];
m_attackHezzzzzz[INDEX_BOX_LEFT] = - m_anim.m_attHezzzzzz[offset + INDEX_BOX_RIGHT];
m_attackHezzzzzz[INDEX_BOX_RIGHT] = - m_anim.m_attHezzzzzz[offset + INDEX_BOX_LEFT];
}
else
{
m_collisionHezzzzzz[INDEX_BOX_LEFT] = m_anim.m_colHezzzzzz[offset + INDEX_BOX_LEFT];
m_collisionHezzzzzz[INDEX_BOX_RIGHT] = m_anim.m_colHezzzzzz[offset + INDEX_BOX_RIGHT];
m_collisionHezzzzzz[INDEX_BOX_FRONT] = m_collisionHezzzzzz[INDEX_BOX_RIGHT];
m_collisionHezzzzzz[INDEX_BOX_BACK] = m_collisionHezzzzzz[INDEX_BOX_LEFT];
m_attackHezzzzzz[INDEX_BOX_LEFT] = m_anim.m_attHezzzzzz[offset + INDEX_BOX_LEFT];
m_attackHezzzzzz[INDEX_BOX_RIGHT] = m_anim.m_attHezzzzzz[offset + INDEX_BOX_RIGHT];
}
if (m_flipY)
{
m_collisionHezzzzzz[INDEX_BOX_TOP] = - m_anim.m_colHezzzzzz[offset + INDEX_BOX_BOTTOM];
m_collisionHezzzzzz[INDEX_BOX_BOTTOM] = - m_anim.m_colHezzzzzz[offset + INDEX_BOX_TOP];
m_attackHezzzzzz[INDEX_BOX_TOP] = - m_anim.m_attHezzzzzz[offset + INDEX_BOX_BOTTOM];
m_attackHezzzzzz[INDEX_BOX_BOTTOM] = - m_anim.m_attHezzzzzz[offset + INDEX_BOX_TOP];
}
else
{
m_collisionHezzzzzz[INDEX_BOX_TOP] = m_anim.m_colHezzzzzz[offset + INDEX_BOX_TOP];
m_collisionHezzzzzz[INDEX_BOX_BOTTOM] = m_anim.m_colHezzzzzz[offset + INDEX_BOX_BOTTOM];
m_attackHezzzzzz[INDEX_BOX_TOP] = m_anim.m_attHezzzzzz[offset + INDEX_BOX_TOP];
m_attackHezzzzzz[INDEX_BOX_BOTTOM] = m_anim.m_attHezzzzzz[offset + INDEX_BOX_BOTTOM];
}
}
catch (Exception ex) {
ex.printStackTrace();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -