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

📄 gsphysics.h

📁 连连看这个游戏都玩过吧
💻 H
字号:
// GsPhysics.h: interface for the CGsKinetic class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_GSPHYSICS_H__3CEBDA4F_9E6B_45DF_A7A7_CACAE9A9977B__INCLUDED_)
#define AFX_GSPHYSICS_H__3CEBDA4F_9E6B_45DF_A7A7_CACAE9A9977B__INCLUDED_

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

//struct GSLIB_API SVector : public D3DXVECTOR3
//{
//	// Constructors
//	SVector();
//	SVector( float new_x, float new_y, float new_z );
//	SVector( SVector const & other );
//
//	// Operators
//	SVector & operator+=( SVector const & right );
//	SVector & operator-=( SVector const & right );
//	SVector & operator*=( float right );
//	SVector & operator/=( float right );
//	SVector & operator%=( float right );
//	SVector & operator<<=( float right );
//	SVector & operator>>=( float right );
//};

//物理矢量函数
//bool GSLIB_API operator==( SVector const & left, SVector const & right );
//
//bool GSLIB_API operator!=( SVector const & left, SVector const & right );
//
//SVector GSLIB_API operator-( SVector const & pofloat );
//
//SVector GSLIB_API operator+( SVector const & left, SVector const & right );
//
//SVector GSLIB_API operator-( SVector const & left, SVector const & right );
//
//SVector GSLIB_API operator*( SVector const & left, float right );
//
//SVector GSLIB_API operator*( float left, SVector const & right );
//
//SVector GSLIB_API operator/( SVector const & left, float right );
//
//SVector GSLIB_API operator%( SVector const & left, float right );
//
//SVector GSLIB_API operator<<( SVector const & left, int right );
//
//SVector GSLIB_API operator>>( SVector const & left, int right );
//
//double GSLIB_API distance( SVector const & pofloat );
//
//double GSLIB_API angle( SVector const & pofloat );
//
//std::streambuf & GSLIB_API operator<<( std::streambuf & stream, SVector const & pofloat );
//
//std::streambuf & GSLIB_API operator>>( std::streambuf & stream, SVector & pofloat );



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

};

//动力学模型
class GSLIB_API CGsKinetic  
{
public:
	CGsKinetic();
	CGsKinetic(GVECTOR pos, GVECTOR speed, GVECTOR accel) {m_pos = pos;m_speed = speed; m_accel = accel;}
	virtual ~CGsKinetic();
public:
	VOID		SetPos(GVECTOR pos);
	GVECTOR		GetPos();
	GVECTOR*	PtrPos();
	VOID		MovePos(GVECTOR pos);
	
	VOID		SetSpeed(GVECTOR speed);
	GVECTOR		GetSpeed();
	GVECTOR*	PtrSpeed();
	VOID		MoveSpeed(GVECTOR speed);
	
	VOID		SetAccel(GVECTOR accel);
	GVECTOR		GetAccel();
	GVECTOR*	PtrAccel();
	VOID		MoveAccel(GVECTOR accel);


public:
	//运动算法
	//匀变速运动
	FLAG		Update_ConstAccel(float fSec);

protected:
	GVECTOR		m_pos;		//位置
	GVECTOR		m_speed;	//速度
	GVECTOR		m_accel;	//加速度

};


inline	VOID		CGsKinetic::SetPos(GVECTOR pos)		{m_pos	= pos;}
inline	GVECTOR		CGsKinetic::GetPos()				{return m_pos;}
inline	GVECTOR*	CGsKinetic::PtrPos()				{return &m_pos;}
inline	VOID		CGsKinetic::MovePos(GVECTOR pos)	{m_pos += pos;}

inline	VOID		CGsKinetic::SetSpeed(GVECTOR speed)		{m_speed	= speed;}
inline	GVECTOR		CGsKinetic::GetSpeed()					{return m_speed;}
inline	GVECTOR*	CGsKinetic::PtrSpeed()					{return &m_speed;}
inline	VOID		CGsKinetic::MoveSpeed(GVECTOR speed)	{m_speed += speed;}
	
inline	VOID		CGsKinetic::SetAccel(GVECTOR accel)		{m_accel	= accel;}
inline	GVECTOR		CGsKinetic::GetAccel()					{return m_accel;}
inline	GVECTOR*	CGsKinetic::PtrAccel()					{return &m_accel;}
inline	VOID		CGsKinetic::MoveAccel(GVECTOR accel)	{m_accel += accel;}

#endif // !defined(AFX_GSPHYSICS_H__3CEBDA4F_9E6B_45DF_A7A7_CACAE9A9977B__INCLUDED_)

⌨️ 快捷键说明

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