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

📄 basebuildobject.h

📁 国外网游源码....除工具源码缺少之外,其余程序都全...至于,什么游戏,因为国内还没有,所以找不到测试
💻 H
字号:
// BaseBuildObject.h: interface for the CBaseBuildObject class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_BASEBUILDOBJECT_H__4E75B417_D9C0_47C4_BB31_A8B55989304B__INCLUDED_)
#define AFX_BASEBUILDOBJECT_H__4E75B417_D9C0_47C4_BB31_A8B55989304B__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#define WRITE_MATRIX4(tempmatrix, fArray)		\
{											\
	tempmatrix(0,0) = fArray[0][0]; tempmatrix(0,1) = fArray[0][1]; \
	tempmatrix(0,2) = fArray[0][2]; tempmatrix(0,3) = fArray[0][3]; \
	tempmatrix(1,0) = fArray[1][0]; tempmatrix(1,1) = fArray[1][1]; \
	tempmatrix(1,2) = fArray[1][2]; tempmatrix(1,3) = fArray[1][3]; \
	tempmatrix(2,0) = fArray[2][0]; tempmatrix(2,1) = fArray[2][1]; \
	tempmatrix(2,2) = fArray[2][2]; tempmatrix(2,3) = fArray[2][3];	\
	tempmatrix(3,0) = fArray[3][0]; tempmatrix(3,1) = fArray[3][1]; \
	tempmatrix(3,2) = fArray[3][2]; tempmatrix(3,3) = fArray[3][3];	\
}

class CMCShadowObject;

class CBaseBuildObject  
{
public:
	CBaseBuildObject();
	virtual ~CBaseBuildObject();

public:
	
	virtual void	Render();
	virtual void	RenderEx();
	void			RenderExTest();
	void			RenderAlphaTex();
	void			RenderDecal();
	virtual void	ColMeshRenderEx();
	void			BBoxRender();

	BOOL			CheckCollision( D3DXVECTOR3 vOrg, D3DXVECTOR3 * vDir, FLOAT fTargetDist, 
									FLOAT * fDist, D3DXVECTOR3 * vCollPos );

	void			RotateAxis(D3DXVECTOR3 *vAxis,float Angle,BOOL bChange=FALSE);

	void			ReSetRotation(){	m_vLook		= D3DXVECTOR3(0.0f,0.0f,1.0f);
										m_vRight	= D3DXVECTOR3(1.0f,0.0f,0.0f);
										m_vUp		= D3DXVECTOR3(0.0f,1.0f,0.0f);	
										D3DXQuaternionIdentity(&m_quateRotate);
									}

	inline void		Scaling(float sx,float sy, float sz)		{ D3DXMatrixScaling(&m_matScale,sx,sy,sz); }
	void			Translation(D3DXVECTOR3 *pPos, BOOL bChange=FALSE);

	MD3BOUNDBOX*	GetBoundBox() { return m_pObject->GetBoundBox(m_nCurFrame); }

	D3DXMATRIX*		GetWorldMatrix()				{ return &m_matWorld; }
	D3DXMATRIX*		GetTransMatrix()				{ return &m_matTrans; }
	D3DXMATRIX*		GetScaleMatrix()				{ return &m_matScale; }

	int				GetObjectMeshCount() { return m_pObject->GetMeshCount( m_nCurFrame ); }
	CMCObjMesh*		GetObjectMesh( CMCObjMesh* pMesh ) { return m_pObject->GetNextMesh( pMesh, m_nCurFrame); }
	
	int				GetObjectColMeshCount() { return m_pObject->GetColMeshCount( m_nCurFrame ); }
	CMCObjColMesh*	GetObjectColMesh( CMCObjColMesh* pMesh ) { return m_pObject->GetNextColMesh( pMesh, m_nCurFrame); }

//	CollisionModel3D * GetColdetMesh( CMCObjMesh* pMesh ) { return m_pObject->GetCollisionModel3D( pMesh, m_nCurFrame); }
//	CollisionModel3D * GetColdetModel() { return m_pObject->GetCollisionModel3D( m_nCurFrame ); }

//	CollisionModel3D * GetColdetMeshEx( CMCObjColMesh* pMesh ) { return m_pObject->GetCollisionModel3DEx( pMesh, m_nCurFrame); }
//	CollisionModel3D * GetColdetModelEx() { return m_pObject->GetCollisionModel3DEx( m_nCurFrame ); }

	UINT			GetFrame() { return m_nCurFrame; }
	void			SetFrame( UINT nFrame ) { m_nCurFrame = nFrame; }
	
	D3DXVECTOR3		GetPosVector() { return D3DXVECTOR3(m_matTrans._41,m_matTrans._42,m_matTrans._43);}
	void			ReSetWorldMat();
	void			SetWorldMat( D3DXMATRIX &Mat ) { m_matWorld = Mat; }
	void			SetWorldShwMat( D3DXMATRIX &Mat ) { m_matWorldShw = Mat; }
	
	HRESULT			CreateShadowMesh( const char * szFileName );
	void			ShadowRender();

protected:
	//void			RotateLocalXYZ(WORD nIndex, float Angle, BOOL bUpOption);
	
public:
	short			m_nIndex;
	int				m_nPart;
	int				m_nBreak;
	int				m_nBlend;

	CMCObject	*		m_pObject;
	CMCParts	*		m_pPart;		// 快急父 烙矫风 持菌寸..

	D3DXVECTOR3			m_vLeftTop;
	D3DXVECTOR3			m_vRightTop;
	D3DXVECTOR3			m_vLeftBottom;
	D3DXVECTOR3			m_vRightBottom;
	D3DXVECTOR3			m_vCenter;
	FLOAT				m_fRadius;

protected:

	D3DXMATRIXA16		m_matTrans;
	D3DXMATRIXA16		m_matScale;
	D3DXMATRIXA16		m_matWorld;
	D3DXMATRIXA16		m_matWorldShw;

	D3DXQUATERNION		m_quateRotate;	// 磊脚狼 雀傈蔼阑 啊瘤绊 乐绰 孽磐
	D3DXQUATERNION		m_quateResult;	// Tag蔼苞 困俊 孽磐客 弥辆 拌魂登绢龙 孽磐(某腐磐俊 利侩登绰 孽磐)
	
	D3DXVECTOR3			m_vLook;
	D3DXVECTOR3			m_vUp;
	D3DXVECTOR3			m_vRight;

//	CMCObject	*		m_pObject;
	UINT				m_nCurFrame;
	UINT				m_nNextFrame;
	DWORD				m_dwMSPF;		// Mill Second Per Frame
	DWORD				m_dwAccTime;	// 穿利~
	float				m_finterPolation; // 焊埃俊 静捞绰芭

	CMCShadowObject	*	m_pShadowObject;
//	CMCBlendObject	*	m_pBlendObject;
};

#endif // !defined(AFX_BASEBUILDOBJECT_H__4E75B417_D9C0_47C4_BB31_A8B55989304B__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -