📄 game_3d.h
字号:
// Game_3D.h
#ifndef _GAME_3D_
#define _GAME_3D_
#define KEYDOWN(nKey) HIBYTE(GetAsyncKeyState(nKey))
//#define KEYUP(nKey) LOBYTE(GetAsyncKeyState(nKey))
#define KEYUP(nKey) ((GetAsyncKeyState(nKey) & 0x8000) ? 0 : 1)
typedef struct _CULLSPHERE
{
short nUserIndex;
LPD3DXMESH pMesh;
D3DXMATRIX metWorld;
_CULLSPHERE() :
nUserIndex(-1),pMesh(NULL)
{
}
~_CULLSPHERE()
{
SAFE_RELEASE(pMesh);
}
}CULLSPHERE;
struct BULLETVERTEX
{
D3DXVECTOR3 p;
FLOAT tu, tv;
};
#define BULLET_FVF (D3DFVF_XYZ|D3DFVF_TEX1)
typedef struct _BULLETHIT
{
LPDIRECT3DTEXTURE9 m_pBulletHitTex;
BULLETVERTEX dd;
_BULLETHIT() :
m_pBulletHitTex(NULL)
{
}
~_BULLETHIT()
{
SAFE_RELEASE(m_pBulletHitTex);
}
}BULLETHIT, *PBULLETHIT;
class CXFileManager;
class CPlayer;
class CGameUI;
class CModelManager;
class CTerrain;
class CBspTree;
class CMCQuadTree;
class COcTree;
class CKdTree;
extern CTerrain * g_pTerrain;
extern CBspTree * g_pBspTree;
extern CMCQuadTree * g_pQuadTree;
extern COcTree * g_pOcTree;
extern CKdTree * g_pKdTree;
class CGame3D
{
friend class CGameUI;
public:
CGame3D();
~CGame3D();
HRESULT LoadGame();
// void KeyDown();
// void OnKeyUp( BYTE bVk );
// void MouseMove();
// void OnLButtonUp( int x, int y, UINT nFlags );
// void OnLButtonDown( BOOL fDoubleClick, int x, int y, UINT nFlags );
// void OnRButtonUp( int x, int y, UINT nFlags );
// void OnRButtonDown( BOOL fDoubleClick, int x, int y, UINT nFlags );
CPlayer *GetUserEx(int nSlot);
CPlayer *GetUser(short nUserIndex);
CPlayer *GetSelfUser() { return m_pOneSelf; }
// 促弗 蜡历包访
void UserLoading(UserInfoEx * pUserInfo);
void Move_Pos(int nId,const GHOST& ghost, BYTE MoveType, float RotateAngle);
void Move_Stop(int nId, D3DXVECTOR3& vPos);
void Look_Pos(short nSlot,D3DXVECTOR3 vDir);
//void Move_Start(short nUserIndex, D3DXVECTOR3& vPos, D3DXVECTOR3& vPosDir);
//void UserState_Update(short nUserIndex, D3DXVECTOR3& vPos, D3DXVECTOR3& vDir);
//void UserState_Request(short nCount=15); // 檬寸 15锅栏肺 郴 沥焊甫 辑滚俊 焊晨
void Fire_Start(short nUserIndex);
void Fire_Stop(short nUserIndex);
void Hit(short nUserIndex,short nDestIndex, char nPart,char nDamage);
void Jump(short nUserIndex);//, BYTE JumpState, D3DXVECTOR3 JumpPos, D3DXVECTOR3 JumpDir, D3DXVECTOR3 JumpLook ); //metaljack
void Land(short nUserIndex);//, BYTE JumpState, D3DXVECTOR3 JumpPos, D3DXVECTOR3 JumpDir, D3DXVECTOR3 JumpLook ); //metaljack
void Sight(short nUserIndex,bool bSighting, bool bSight); //metaljack
bool Death(short nShootIndex, short nHitIndex);
void WeaponChange(short nUserIndex, DWORD item_id, BYTE weapon_slot);
void Motion(short nID, const SUBOP_CLIENT_CLIENT& nMotionNum);
void SetGameTime(float nTime) { m_fGameTime = nTime; m_bGameWaiting=false; }
//-------------------------------------------------------------------------------------
// 霸烙捞 场车阑锭 贸府
//-------------------------------------------------------------------------------------
BOOL Game_End();
void Respawn(const short& nUserIndex, const WORD& wInDelay, const D3DXVECTOR3& vPos);
// 蜡历 昏力
void DeleteUser(short nUserIndex);
HRESULT InvalidateDeviceObjects();
HRESULT RestoreDeviceObjects();
// 捞 霸烙俊辑 荤侩登绰 葛电 面倒 贸府 窍绰 何盒烙~
bool Render();
bool FrameMove();
bool ObjectDistance();
D3DXVECTOR3 TerrainIntersect(D3DXVECTOR3 , D3DXVECTOR3 ,FLOAT &);
D3DXVECTOR3 m_vMyPos;
private:
void UpdateTime();
DWORD GetElapsed(){ return m_dwElapsed; }
//void CheckCollisionCam( float angleX, float angleY );
bool WeaponConvert(const EQUIP_POS& EquipPos,WEAPON_TYPE *pWeaponType);
void CullPlayer( CFrustum* pFrustum );
int Check_Player_Pos();
int CollisionToUser(CPlayer *pUser);
private:
bool m_bGameWaiting; // 促弗 敲饭捞甫 扁促妨具 茄促
CTerrain * m_pTerrain;
float m_fCameraDist; // 墨皋扼客 某腐磐狼 芭府
// 矫埃 包访 函荐
DWORD m_dwLastTime;
DWORD m_dwCurTime;
DWORD m_dwElapsed;
// 阶绰 矫埃 函荐 -_-;
DWORD m_dwAccTime;
float m_fGameTime; // 0捞 登搁 霸烙坷滚
BOOL m_bGameOver;
char m_iWinTeam;
//----------------------------------------------------------------------------
vector<CPlayer*> m_pUser;
CPlayer *m_pOneSelf; // 磊扁 磊脚 敲饭捞狼 器牢磐烙
CModelManager* m_pModelManager; // 葛胆阑 包府窃 -_-;
vector<CBaseBuildObject *> m_listBuild;
CMcFonts* m_pFonts;
vector<CPlayer*> m_ListViewPlayer;
CBspTree * m_pBspTree;
CMCQuadTree * m_pQuadTree;
COcTree * m_pOcTree;
CKdTree * m_pKdTree;
struct ColUserInfo
{
bool m_bColFlag;
short m_nColSlot;
};
vector<short> m_ListColUser;
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -