📄 player.java
字号:
{ 74, 24, 13, 23, 8, 20, - 3, 10 },
{ 87, 24, 13, 21, 6, 20, 7, 8 },
{ 100, 24, 12, 23, 6, 20, 7, 4 },
{ 112, 24, 8, 24, 4, 21, 7, 8 },
{ 120, 24, 13, 23, 6, 20, 7, 10 },
{ 133, 24, 13, 22, 7, 20, 7, 8 },
{ 146, 24, 12, 23, 6, 20, 7, 4 },
{ 158, 24, 5, 24, 3, 21, 7, 8 },
{ 163, 24, 11, 23, 6, 20, 7, 10 },
{ 0, 48, 10, 25, 5, 23, 8, 26 },
{ 10, 48, 11, 25, 6, 23, 0, 0 },
{ 21, 48, 8, 25, 3, 23, 2, 28 },
{ 29, 48, 7, 28, 4, 26, 0, 0 },
{ 36, 48, 10, 25, 4, 22, - 2, 26 },
{ 46, 48, 11, 25, 5, 23, 0, 0 },
{ 57, 48, 6, 24, 4, 22, - 1, 26 },
{ 63, 48, 10, 27, 3, 25, 0, 0 },
{ 73, 48, 8, 25, 4, 23, 0, 27 },
{ 81, 48, 10, 27, 5, 24, 0, 0 },
{ 91, 48, 8, 26, 4, 24, 3, 29 },
{ 99, 48, 8, 28, 3, 26, 0, 0 },
{ 107, 48, 8, 25, 5, 22, 7, 26 },
{ 115, 48, 10, 27, 6, 24, 0, 0 },
{ 125, 48, 6, 24, 4, 23, 7, 28 },
{ 131, 48, 10, 28, 8, 26, 0, 0 },
{ 0, 76, 10, 24, 6, 21, 7, 11 },
{ 0, 76, 10, 24, 6, 21, 7, 6 },
{ 10, 76, 11, 23, 7, 21, 7, 5 },
{ 10, 76, 11, 23, 7, 21, 7, 8 },
{ 21, 76, 10, 23, 4, 21, - 3, 10 },
{ 21, 76, 10, 23, 4, 21, - 3, 5 },
{ 31, 76, 11, 23, 4, 21, - 3, 4 },
{ 31, 76, 11, 23, 4, 21, - 3, 7 },
{ 42, 76, 13, 23, 6, 21, - 3, 10 },
{ 42, 76, 13, 23, 6, 21, - 3, 5 },
{ 55, 76, 12, 23, 6, 21, - 3, 4 },
{ 55, 76, 12, 23, 6, 21, - 3, 7 },
{ 67, 76, 13, 23, 7, 21, 8, 10 },
{ 67, 76, 13, 23, 7, 21, 8, 5 },
{ 80, 76, 12, 23, 6, 21, 8, 4 },
{ 80, 76, 12, 23, 6, 21, 8, 7 },
{ 0, 99, 9, 23, 5, 20, 0, 0 },
{ 9, 99, 10, 24, 6, 21, 0, 0 },
{ 19, 99, 13, 22, 7, 20, 0, 0 },
{ 32, 99, 11, 23, 7, 21, 0, 0 },
{ 43, 99, 9, 23, 4, 20, 0, 0 },
{ 52, 99, 10, 24, 4, 21, 0, 0 },
{ 62, 99, 9, 22, 4, 20, 0, 0 },
{ 71, 99, 9, 23, 4, 20, 0, 0 },
{ 80, 99, 11, 23, 5, 19, 0, 0 },
{ 91, 99, 11, 23, 5, 20, 0, 0 },
{ 102, 99, 11, 23, 5, 21, 0, 0 },
{ 113, 99, 13, 22, 6, 20, 0, 0 },
{ 126, 99, 11, 22, 6, 20, 0, 0 },
{ 137, 99, 11, 23, 6, 21, 0, 0 },
{ 148, 99, 9, 23, 6, 20, 0, 0 },
{ 157, 99, 9, 23, 6, 19, 0, 0 },
{ 0, 123, 10, 29, 6, 26, 5, 29 },
{ 10, 123, 8, 28, 5, 26, 3, 29 },
{ 18, 123, 10, 29, 4, 26, - 1, 29 },
{ 28, 123, 8, 29, 4, 25, 0, 29 },
{ 36, 123, 8, 29, 3, 25, 0, 29 },
{ 44, 123, 8, 29, 4, 27, 2, 29 },
{ 52, 123, 8, 29, 4, 26, 4, 29 },
{ 60, 123, 8, 29, 6, 26, 7, 29 },
{ 68, 128, 11, 24, 5, 20, 5, 15 },
{ 79, 122, 10, 29, 5, 26, 0, 30 },
{ 89, 127, 11, 23, 5, 20, 7, 15 },
{ 100, 122, 10, 29, 5, 26, - 1, 30 },
{ 110, 126, 11, 24, 6, 20, 1, 15 },
{ 121, 122, 10, 28, 6, 26, 7, 29 },
{ 131, 128, 11, 23, 6, 20, 2, 15 },
{ 142, 122, 10, 29, 6, 26, 7, 29 },
{ 92, 75, 7, 23, 4, 21, 7, 15 },
{ 99, 75, 12, 22, 9, 20, 11, 18 },
{ 111, 75, 7, 23, 4, 21, 0, 15 },
{ 118, 75, 12, 22, 4, 20, - 4, 18 },
{ 130, 75, 8, 24, 3, 22, - 1, 16 },
{ 138, 75, 11, 23, 3, 21, - 4, 15 },
{ 149, 75, 9, 24, 4, 22, 5, 16 },
{ 157, 75, 12, 23, 9, 21, 11, 14 },
{ 68, 128, 11, 24, 5, 20, 5, 15 },
{ 79, 122, 10, 29, 5, 26, - 5, 30 },
{ 89, 127, 11, 23, 5, 20, 7, 15 },
{ 100, 122, 10, 29, 5, 26, - 4, 30 },
{ 110, 126, 11, 24, 6, 20, 1, 15 },
{ 121, 122, 10, 28, 6, 26, 11, 29 },
{ 131, 128, 11, 23, 6, 20, 2, 15 },
{ 142, 122, 10, 29, 6, 26, 12, 29 },
};
private static final int THREEPOINTRANGE[]= { 14, 14, 14, 14, 15, 15, 15, 16,
16, 17, 18, 19, 20, 21, 22, 24,
27, 30, 34, 40, 99, 99, 99, 99, 99 };
private byte m_iSpeed;
private byte m_i2ptShotRating;
private byte m_i3ptShotRating;
private byte m_iDunkRating;
private byte m_iReboundRating;
private byte m_iBlockRating;
private byte m_iDribPassRating;
private byte m_iHeight;
private byte m_i2ptFGAttempts;
private byte m_i3ptFGAttempts;
private byte m_i2ptFGMade;
private byte m_i3ptFGMade;
private byte m_iSteals;
private byte m_iAssists;
private byte m_iRebounds;
private byte m_iBlocks;
private String m_pFirstName;
private String m_pLastName;
private boolean m_bUser;
private boolean m_bUserTeam;
private boolean m_bAnimLock;
private boolean m_bHasBall;
private boolean m_bTeamHasBall;
private boolean m_bDirLock;
private boolean m_bPassTarget;
private boolean m_bInPlayPos;
private boolean m_bCallForPass;
private boolean m_bReboundBall;
private boolean m_bCollided;
private boolean m_bQueShot;
private boolean m_bSlowDown;
private int m_iSlowDownTimer;
private int m_iPlayerType;
private int m_iAIDefenseTeamState;
private int m_iAIOffenseTeamState;
private int m_iAIPlayerState;
private int m_iAIPlayState;
private int m_iAIDelayCounter;
private int m_iAIScriptedSpecial;
private int m_iAIScriptedTarget;
private int m_iShotDist;
private int m_fShotDistX;
private int m_fShotDistY;
private int m_iOffenseDir;
private int m_iManhattanShotDist;
private int m_iBallHandleX;
private int m_iBallHandleY;
private int m_iFrame;
private int m_iAnimNum;
private int m_iAnimState;
private int m_iDirCount;
private int m_iJukeDelay;
private int m_iJukeDir;
private int m_iMoveDir;
private int m_iDir;
private int m_iSpeed90;
private int m_iSpeed45;
private int m_iInPosDelta;
private int m_fNextPos[];
private int m_fPos[];
private int m_fVel[];
private int m_fTargetPos[];
private int PLAYER_ANIM[][];
private Player m_pPassedFrom;
private int m_iAssistCounter;
private Player m_pTeamMates[];
private Player m_pOpponents[];
private Player m_pGuard;
private Player m_pTarget;
private Player m_pColPlayer;
private int m_iTeamIndex;
private RenderObj m_pPlayerObj;
Player(Image pPlayerImage, Image pIndicators, boolean bHomeTeam, boolean bUserTeam)
{
m_pPlayerObj = new RenderObj();
m_iAnimNum = 0;
m_iFrame = 0;
m_iJukeDelay = 0;
m_bUserTeam = bUserTeam;
m_bHasBall = false;
m_iDir = 0;
m_iAIPlayState = -99;
PLAYER_ANIM = new int[17][];
m_pOpponents = new Player[5];
m_pTeamMates = new Player[4];
m_fNextPos = new int[3];
m_fPos = new int[3];
m_fVel = new int[3];
m_fTargetPos = new int[2];
PLAYER_ANIM[0]= IDLE_ANIM;
PLAYER_ANIM[1]= RUN_ANIM;
PLAYER_ANIM[2]= SHOOT_ANIM;
PLAYER_ANIM[3]= DRIBB_ANIM;
PLAYER_ANIM[4]= DEFND_ANIM;
PLAYER_ANIM[5]= REBND_ANIM;
PLAYER_ANIM[6]= REBND_ANIM;
PLAYER_ANIM[7]= LAYUP_ANIM;
PLAYER_ANIM[8]= PASS_ANIM;
PLAYER_ANIM[9]= DUNK1_ANIM;
PLAYER_ANIM[10]= LAYUP_ANIM;
PLAYER_ANIM[11]= LAYUP_ANIM;
PLAYER_ANIM[12]= CATCH_ANIM;
PLAYER_ANIM[13]= HANG_ANIM;
PLAYER_ANIM[14]= JUKE_ANIM;
PLAYER_ANIM[15]= PASS_ANIM;
PLAYER_ANIM[16]= PASS_ANIM;
}
public void reassignData(Image pPlayerImage, Image pIndicators, boolean bHomeTeam, boolean bUserTeam){
m_iAnimNum = 0;
m_iFrame = 0;
m_iJukeDelay = 0;
m_bUserTeam = bUserTeam;
m_bHasBall = false;
m_iDir = 0;
m_iAIPlayState = -99;
PLAYER_ANIM[0]= IDLE_ANIM;
PLAYER_ANIM[1]= RUN_ANIM;
PLAYER_ANIM[2]= SHOOT_ANIM;
PLAYER_ANIM[3]= DRIBB_ANIM;
PLAYER_ANIM[4]= DEFND_ANIM;
PLAYER_ANIM[5]= REBND_ANIM;
PLAYER_ANIM[6]= REBND_ANIM;
PLAYER_ANIM[7]= LAYUP_ANIM;
PLAYER_ANIM[8]= PASS_ANIM;
PLAYER_ANIM[9]= DUNK1_ANIM;
PLAYER_ANIM[10]= LAYUP_ANIM;
PLAYER_ANIM[11]= LAYUP_ANIM;
PLAYER_ANIM[12]= CATCH_ANIM;
PLAYER_ANIM[13]= HANG_ANIM;
PLAYER_ANIM[14]= JUKE_ANIM;
PLAYER_ANIM[15]= PASS_ANIM;
PLAYER_ANIM[16]= PASS_ANIM;
}
public static void Touch()
{
}
void SetPlayerImg(Image pObjImg, Image pIconImg)
{
m_pPlayerObj.SetImg(pObjImg, pIconImg);
}
void SetPlayerStats(byte iSpeed, byte i2ptShotRating, byte i3ptShotRating,
byte iDunkRating, byte iReboundRating, byte iBlockRating, byte iDribPassRating,
byte iHeight, String pFirstName, String pLastName)
{
m_iSpeed = iSpeed;
m_i2ptShotRating = i2ptShotRating;
m_i3ptShotRating = i3ptShotRating;
m_iDunkRating = iDunkRating;
m_iReboundRating = iReboundRating;
m_iBlockRating = iBlockRating;
m_iDribPassRating = iDribPassRating;
m_iHeight = iHeight;
m_i2ptFGAttempts = 0;
m_i3ptFGAttempts = 0;
m_i2ptFGMade = 0;
m_i3ptFGMade = 0;
m_iSteals = 0;
m_iAssists = 0;
m_iRebounds = 0;
m_iBlocks = 0;
m_pFirstName = pFirstName;
m_pLastName = pLastName;
m_iSpeed90 =((m_iSpeed + 2)* 14000)/ 12;
m_iSpeed45 =((m_iSpeed + 2)* 10000)/ 12;
}
void SetUser(boolean bUser)
{
m_bUser = bUser;
if(bUser)
{
for(int i = 0; i < 4; i++)
{
m_pTeamMates[i].SetUser(false);
}
}
}
int GetManhattanDist()
{
return m_iManhattanShotDist;
}
void SetCallForPass(boolean bCallForPass)
{
m_bCallForPass = bCallForPass;
if(m_bCallForPass == true)
{
for(int i = 0; i < 4; i++)
{
m_pTeamMates[i].SetCallForPass(false);
}
}
}
void SetAnim(int iAnimNum)
{
m_iAnimNum = iAnimNum;
}
void ResetPlay()
{
m_iAIPlayerState = 0;
m_iAIOffenseTeamState = 0;
m_iAIDelayCounter = 0;
m_bInPlayPos = true;
m_fTargetPos[0]= m_fPos[0];
m_fTargetPos[1]= m_fPos[1];
m_bCallForPass = false;
}
Player GetGuardPlayer()
{
return m_pGuard;
}
int GetJukeDelay()
{
return m_iJukeDelay;
}
void SetJukedDelay(int iDelay)
{
m_iJukeDelay = iDelay;
}
void SetTeam(int iTeamIndex)
{
m_iTeamIndex = iTeamIndex;
}
int GetTeam()
{
return m_iTeamIndex;
}
int GetStatRebound()
{
return m_iReboundRating;
}
int GetAnimState()
{
return m_iAnimState;
}
void SetTeamate(int iIndex, Player pPlayer)
{
m_pTeamMates[iIndex]= pPlayer;
}
void SetOpponent(int iIndex, Player pPlayer)
{
m_pOpponents[iIndex]= pPlayer;
}
void SetGuard(Player pPlayer)
{
m_pGuard = pPlayer;
}
void AddToShotStats(int iShotVal)
{
if(iShotVal == 2)
m_i2ptFGMade++;
else
m_i3ptFGMade++;
}
void SetHasBall(boolean bHasBall)
{
m_bHasBall = bHasBall;
if(m_bTeamHasBall == false)
{
m_bCallForPass = false;
}
if(bHasBall)
{
String pTmp;
int iRand = Basketball.GetRand()& 0x0001;
switch(iRand)
{
case 0 :
pTmp = m_pFirstName + " " + m_pLastName + " 控球";
break;
case 1 :
default :
pTmp = m_pLastName + " 控球";
break;
}
Basketball.hGameWnd.SetCommentary(pTmp);
m_bCallForPass = false;
m_bTeamHasBall = bHasBall;
for(int i = 0; i < 4; i++)
{
m_pTeamMates[i].SetTeamHasBall(bHasBall);
m_pTeamMates[i].SetHasBall(!bHasBall);
}
for(int j = 0; j < 5; j++)
{
m_pOpponents[j].SetTeamHasBall(!bHasBall);
m_pOpponents[j].SetHasBall(!bHasBall);
}
}
}
void SetTeamHasBall(boolean bTeamHasBall)
{
m_bTeamHasBall = bTeamHasBall;
}
void SetTeamDefenseAI(int iTeamAI)
{
m_iAIDefenseTeamState = iTeamAI;
}
void SetTeamOffenseAI(int iTeamAI)
{
m_iAIOffenseTeamState = iTeamAI;
m_iAIPlayState = -99;
}
void SetInPlayPos(boolean bInPlayPos)
{
m_bInPlayPos = bInPlayPos;
}
void SetPlayerAI(int iPlayerAI)
{
m_iAIPlayerState = iPlayerAI;
m_bCallForPass = false;
}
String GetFirstName()
{
return m_pFirstName;
}
String GetLastName()
{
return m_pLastName;
}
int Get2PtFGAttempts()
{
return m_i2ptFGAttempts;
}
int Get2PtFGMade()
{
return m_i2ptFGMade;
}
int Get3ptFGAttempts()
{
return m_i3ptFGAttempts;
}
int Get2ptShotRat()
{
return m_i2ptShotRating;
}
int Get3ptFGMade()
{
return m_i3ptFGMade;
}
int GetDir()
{
return m_iDir;
}
int GetStls()
{
return m_iSteals;
}
int GetBlks()
{
return m_iBlocks;
}
int GetRebs()
{
return m_iRebounds;
}
int GetAsts()
{
return m_iAssists;
}
boolean ChkCallForBall()
{
return m_bCallForPass;
}
boolean GetHasBall()
{
return m_bHasBall;
}
boolean GetAnimLock()
{
return m_bAnimLock;
}
boolean ChkUser()
{
return m_bUser;
}
boolean ChkInPlayPos()
{
if(m_bUser == true && ChkUserLockPlay()== false)
{
return true;
}
return m_bInPlayPos;
}
boolean ChkUserLockPlay()
{
switch(m_iAIOffenseTeamState)
{
case 15 :
case 17 :
return true;
default :
return false;
}
}
int GetPosX()
{
return m_fPos[0];
}
int GetPosY()
{
return m_fPos[1];
}
int GetPosZ()
{
return m_fPos[2];
}
int GetBallHandleX()
{
return m_iBallHandleX;
}
int GetBallHandleY()
{
return m_iBallHandleY;
}
int GetNextPosX()
{
return m_fNextPos[0];
}
int GetNextPosY()
{
return m_fNextPos[1];
}
boolean ChkPassTarget()
{
return m_bPassTarget;
}
void SetReboundBall(boolean bReboundBall)
{
m_bReboundBall = bReboundBall;
}
void SetPositionText(boolean bOn)
{
if(bOn)
{
m_pPlayerObj.SetText(FrontEnd.PLAYER_TYPE[m_iPlayerType], true);
}
else
{
m_pPlayerObj.SetText(null, true);
}
}
void SetPlayerType(int iPlayerType)
{
m_iPlayerType = iPlayerType;
}
int GetSpecialAI()
{
return m_iAIScriptedSpecial;
}
int GetPlayerOffenseDir()
{
return m_iOffenseDir;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -