⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 game_3d.h

📁 国外网游源码....除工具源码缺少之外,其余程序都全...至于,什么游戏,因为国内还没有,所以找不到测试
💻 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 + -