📄 player.h
字号:
//-----------------------------------------------------------------------------------------------------------
// File. Player.h
//-----------------------------------------------------------------------------------------------------------
#ifndef _PLAYER_
#define _PLAYER_
#ifdef _DEBUG
class CMcFonts;
#endif
//-----------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------------
// Proto Type
//-----------------------------------------------------------------------------------------------------------
class CMCParts;
class CEquipment;
class CTestBullet;
class CCollision;
class CBaseBuildObject;
class CTerrain;
class CGameUI;
struct PICKING;
extern CTerrain * g_pTerrain;
enum PROPERTY_TYPE;
enum EQUIP_POS;
enum PLAYER { Self = 0, Your };
enum TEAM { SINGE_TEAM=0, RED_TEAM, BLUE_TEAM};
enum PLAYER_STATE // 镜鳖 富鳖.. 捞吧肺 官曹鳖 富鳖..
{
PS_MOVE_FRONT = 0,
};
#define POS_SEND_FRAME 10
#define NORMAL_SPEED 36*1.3
#define SIDE_SPEED 30*1.3
#define BACK_SPEED 27*1.3
#define RADIUS_X 2.2f
#define RADIUS_Y 4.1f
#define RADIUS_Z 2.5f
#define CAMERA_HEIGHT 4.1f
#define GRAVITY 1.0f
#define JUMP_GRAVITY 20.0f
#define JUMP_SPEED 25.0f
#define COL_CHECK_DISTANCE 8.0f //辟贸狼 蜡历啊 甸绢吭阑锭 眉农.
//-----------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------------
// S t r u c t
//-----------------------------------------------------------------------------------------------------------
struct D3DVERTEX
{
D3DXVECTOR3 p;
D3DXVECTOR3 n;
static const DWORD FVF;
};
typedef struct
{
bool bActive; // 绊胶飘啊 混酒 乐蠢衬~
DWORD dwTime; //矫埃 timeGetTime();
float fSpeed; //加档
float fAcceler; //啊加档(何胶磐 淖阑锭: +蔼, 舶阑锭: -蔼)
D3DXVECTOR3 vPos;
D3DXVECTOR3 vDir;
D3DXVECTOR3 vLook;
}GHOST;
typedef struct
{
short nIndex; // 敲饭捞绢狼 牢郸胶
char szID[17]; //酒捞叼
char szNickName[17]; //葱匙烙
char szClan[21]; //蜡历啊 加茄 努罚 捞抚
WORD wTeam; // 敲饭捞绢 评~
UINT nKillNum; // 懦荐
UINT nDeathNum; // 磷篮荐
BYTE iLevel; //蜡历 饭骇
BYTE iItemNum; //蜡历啊 啊瘤绊 乐绰 酒捞袍 箭
short nPoint; // 裙垫 器牢飘..
DWORD nTotalPoint; // 配呕 器牢飘.. 裙垫 器牢飘 拌魂茄蔼..
DWORD nExp; // 版氰摹
DWORD nTotalExp;
short nCurHP,nMaxHP;
bool bWinner; // 捞板衬?
// 烙矫
float fDistance;
// New
short nDefence;
short nSpeed;
DWORD nTakeItem_id;
WORD wSlot;
WORD wSpecialAction; // 绢痘霸 静老搏瘤 搬沥给沁澜
}PLAYERINFO;
typedef struct
{
ANI_ACTION Ani_Action;
bool bIsRun;
}ANI_PLAY;
class CPlayer
{
public:
CPlayer();
virtual ~CPlayer();
//---------------------------------------------------------------------------------------------
// ADT
//---------------------------------------------------------------------------------------------
virtual HRESULT Create( UserInfoEx *pUserInfo, CModelManager *pModel, CItemManager *pManager,short nSelect=-1) = 0;
virtual bool FrameMove() = 0;
virtual void SetPos(D3DXVECTOR3 vPos) = 0;
virtual void SetPos(float x,float y,float z) { this->SetPos(D3DXVECTOR3(x,y,z)); }
virtual float SetLookAt(D3DXVECTOR3 *pV)=0;
virtual void Rotate(char nType,float Angle)=0;
//---------------------------------------------------------------------------------------------
// 积己苞 颇鲍
//---------------------------------------------------------------------------------------------
virtual void Init();
virtual HRESULT CreateVertexIndexBuffer();
virtual HRESULT ReleaseVI();
// Add 俺充烙. 寇何俊辑 父甸绢辑 拎具窍哥, 鞍篮 困摹俊 乐绰扒 丹绢竞框
virtual BOOL AddInventory(CEquipment *pEquip, bool bDefualt = 1);
virtual CEquipment *GetInventory(EQUIP_POS EquipPos, DWORD dwSlot);
virtual CEquipment *GetInventory(DWORD dwItemIndex);
virtual bool Hit(short nDestUser, int nDamage);
virtual void Render(bool bBoundBox=false);
virtual void Scaling(float sx,float sy, float sz);
virtual void Rotate(D3DXVECTOR3 *vAxis,float Angle);
virtual bool FireWeapon();
virtual void UpdateAnimation();
virtual void SendMyPosInfo(BYTE Frame) = 0;
// 悼扁拳俊 静捞绰 绊胶飘
virtual bool SetGhost(bool bDeath, const GHOST* ghost) = 0;
virtual bool InterPolationGhost();
//bool StateInput(bool bRemove,const PLAYER_STATE &eValue );
void Focus(); // 器目胶甫 酪绢滚府搁~
PLAYER GetPlayerType() { return m_Type; }
bool Death(); // 敲饭捞绢甫 磷牢促.
bool WeaponChange(EQUIP_POS EquipPos, int nSlot=-1);
bool Respawn(); // 楼刘唱辑 傲 父惦
// Flag 牢磐其捞胶 : StateInput 窃荐甫 父靛绰霸 歹 唱篮单.. 惑怕菩畔阑 结具 瞪刨单..矫埃何练
virtual void FireSetting(bool bFire) { m_bFire = bFire; }
virtual bool GetFireState() { return m_bFire; } //楷荤 荤拜 惑怕
virtual bool GetShootState() { return m_bShoot;} //茄惯 茄惯 醚舅 朝扼哎锭狼 惑怕
virtual bool GetSightState() { return m_bSight; }
virtual bool GetSightingState() { return m_bSighting;}
virtual bool GetReloadState() { return m_bReload; } //犁厘傈 矫累
virtual bool GetReloadingState() { return m_bReloading; } //犁厘傈 局聪皋捞记 窍绰吝.
virtual bool GetSitDown() { return m_bSitDown; }
virtual bool GetSitDowning() { return m_bSitDowning; }
void Reload() { m_bReload = true; } // 犁厘傈
void SitDown(bool bDowning, bool bDown=false) { m_bSitDowning = bDowning; m_bSitDown = bDown; }
void JumpToLand(bool bJump, bool bLand) { m_bJumping = bJump; m_bLand = bLand; }
void Sight(bool bSighting, bool bSight){ m_bSighting = bSighting; m_bSight = bSight; }
void SightState(bool bState);
//---------------------------------------------------------------------------------------------
// 困摹 棺 规氢 沥焊蔼
//---------------------------------------------------------------------------------------------
PLAYERINFO* GetInfo() { return &m_tagInfo; }
D3DXVECTOR3* GetPos() { return &m_vPos; }
D3DXMATRIX* GetTM() { return D3DXMatrixTranslation(&m_TM,m_vPos.x,m_vPos.y,m_vPos.z);}
D3DXVECTOR3 GetLookDir() { return *D3DXVec3Normalize(&m_vLook,&m_vLook); }
D3DXVECTOR3 GetRightDir() { return *D3DXVec3Normalize(&m_vRight,&m_vRight); }
D3DXVECTOR3 GetUpDir() { return *D3DXVec3Normalize(&m_vUp,&m_vUp); }
//--------------------------------------------------------------------------------------
bool IsActive() { return m_bActive; }
short GetIndex() { return m_tagInfo.nIndex; }
WORD GetTeam() { return m_tagInfo.wTeam; }
void LinkModel();
D3DXVECTOR3 GetSector() { return m_vSector; }
PLAYER GetType() { return m_Type; }
virtual bool SetLight();
CMCParts* GetParts( EQUIP_POS nPart );
CEquipment* GetEquip( EQUIP_POS nPart );
EQUIP_POS GetEquipPos() { return m_OldPos; }
//---------------------------------------------------------------------------------------------//
// Animation //
//---------------------------------------------------------------------------------------------//
virtual bool Ani_Start(ANI_ACTION Action,int nLooping=-1) = 0;
virtual bool Ani_Stop(ANI_ACTION Action) = 0;
virtual bool Ani_IsEnd(ANI_ACTION Action) = 0;
bool Ani_StartStop(ANI_ACTION Action);
void Ani_Begin(const ANI_ACTION& Action);
void Ani_Pause(EQUIP_POS EquipPos) { m_nAniType[EquipPos].bIsRun = false; }
ANI_ACTION Ani_Type(EQUIP_POS EquipPos) { return m_nAniType[EquipPos].Ani_Action; }
HRESULT LoadAnimation(char *strFileName, UINT nPartType);
//---------------------------------------------------------------------------------------------
// 焊幅
//---------------------------------------------------------------------------------------------
MD3BOUNDBOX* GetBoundBox( EQUIP_POS nPart ); // 官款爹 冠胶甫 掘绢柯促
bool GetBoundBox(LPD3DXMESH* ppOutMesh, D3DXVECTOR3 *pLastPos); // 某腐磐 傈眉甫 皑轿绰 官款爹 冠胶 (OBB胶鸥老烙)
BOOL Equip(EQUIP_POS EquipPos,bool Dual, DWORD dwSlot=0); // 厘馒!
protected:
virtual HRESULT Create( UserInfoEx *pUserInfo);
virtual BOOL NextEquip(EQUIP_POS EquipPos);
virtual bool Act_GhostWalking(bool self);
//---------------------------------------------------------------------------------------
// Action
//---------------------------------------------------------------------------------------
// virtual bool Act_Walking() = 0;
virtual bool Act_Sight();
//---------------------------------------------------------------------------------------
// Animation Action
//---------------------------------------------------------------------------------------
bool Act_WeaponChange();
WORD Ani_Pos(const ANI_ACTION& Action);
//bool Ani_Torso(ANI_ACTION* pAniType, const PROPERTY_TYPE& ProType);
public:
D3DXVECTOR3 m_vMoveDir; // 捞悼 规氢(虐俊辑 罐澜)
bool m_bBooster;
int m_nKeyNum; // 何胶磐甫 拌魂且锭 静烙
bool m_bMove; // 捞悼窍搁 true
WORD m_wAction;
bool m_bLoading;
BYTE m_nActState;
//======metaljack 眠啊 =====================
int m_iFrameCnt;
int m_iTempFrameCnt;
float m_fSelfReSpeed;
float m_fSelfGhostReSpeed;
BYTE m_bMoveMethod;
float m_fLegsAngle;
float m_fRotateDirAngle;
bool m_bReloadSight;
EQUIP_POS m_OldPos; // 泅犁 厘馒窍绊 乐绰 公扁(傍拜啊瓷茄)
EQUIP_POS m_TempEquipPos; // 梆 官曹 公扁
// 馒瘤客 痢橇
bool m_bLand;
bool m_bJumping; // 痢橇窍绰吝.
bool m_bSighting; // 炼霖窍绰 林旷~ (局聪概捞记 敲饭捞吝)
bool m_bReloading; // 犁厘傈窍绰吝
D3DXVECTOR3 m_vSendDirect;
bool m_bFlagRevision;
// 泅犁 胶乔靛
float m_fCurSpeed;
float m_fSitDownSpeed;
float m_fZoomDownSpeed;
protected:
PLAYER m_Type;
GHOST m_Ghost; // 绊胶飘客 袍橇绊胶飘绰 公均捞衬??
GHOST m_TempGhost;
//------------------------------------------------------------------------
// 阿辆 Flag
//------------------------------------------------------------------------
bool m_bActive; // 混酒乐绰啊
bool m_bFire; // 傍拜吝牢瘤
bool m_bShoot;
bool m_bReload; // 犁厘傈阑 秦具 登绰瘤
bool m_bWeaponChange; // 公扁甫 官层具 窍绰瘤
bool m_bRespawn; // 府胶迄秦具登衬?
bool m_bSight; // 炼霖惑怕衬?
// EQUIP_POS m_TempEquipPos; // 梆 官曹 公扁
int m_nTempSlot; // 梆 官曹 公扁狼 浇吩
float m_fFriction; // 付蔓蔼
// 旧扁
bool m_bSitDown;
bool m_bSitDowning; // 旧绰 吝捞衬?
//float m_fJoomDist; // 淋 芭府
//------------------------------------------------------------------------
// Animation 函荐
//------------------------------------------------------------------------
ANI_PLAY m_nAniType[2]; // 个烹, 窍眉
// 局聪概捞记 矫埃 函荐
DWORD m_dwLastTime;
DWORD m_dwCurTime;
DWORD m_dwElapsed;
//------------------------------------------------------------------------
// // Player 沥焊
//------------------------------------------------------------------------
PLAYERINFO m_tagInfo; // 寇何俊辑 官操瘤 富磊. 弥檬 肺爹锭父 累己窍骨肺..
D3DXMATRIXA16 m_TM;
D3DXVECTOR3 m_vUp;
D3DXVECTOR3 m_vRight;
D3DXVECTOR3 m_vLook;
D3DXVECTOR3 m_vPos;
D3DXVECTOR3 m_vSector; // 阿绵栏肺 雀傈茄 阿档蔼 (规氢酒丛)
D3DXVECTOR3 m_vLegsLook; // 促府啊 焊绰 规氢
float m_fAccelerSpeed; // 啊加档俊 蝶扼 官差绰 加档蔼
//======metaljack 眠啊 =====================
D3DXVECTOR3 m_vRePos; // 面倒茄锅 窍绊 唱扁 傈 苞 抄 饶狼 瞒捞.
float m_fGhostSpeed; // 绊胶飘狼 胶乔靛.
bool m_bChangeWea;
// int m_iFrameCnt;
//-----------------------------------------------------------------------
// Inventory 包访
//-----------------------------------------------------------------------
vector<CEquipment*> m_pInventory; // 家瘤窍绰 厘厚甸
vector<CEquipment*> m_listEquip; // 厘馒窍绊 乐绰 厘厚
//-----------------------------------------------------------------------
// 面倒俊 静捞绰 函荐
//-----------------------------------------------------------------------
// D3DXVECTOR3 m_vOrigin; // 备狼 吝缴痢
// float m_fRadius; // 备狼 馆瘤抚
//-----------------------------------------------------------------------
// 叼滚弊侩
//-----------------------------------------------------------------------
#ifdef _DEBUG
CMcFonts *m_pFonts;
#endif
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -