ttank.h

来自「一个另类的坦克大战源程序」· C头文件 代码 · 共 112 行

H
112
字号
// TTank.h: interface for the TTank class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_TTANK_H__FA81864A_3055_4AD5_91B4_C570CF79BDC0__INCLUDED_)
#define AFX_TTANK_H__FA81864A_3055_4AD5_91B4_C570CF79BDC0__INCLUDED_

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

#include "TSprite.h"

//////////////////////////////////////
//定义NC坦克类型
enum ENEMY_TANK { 
	SINGLE_MISSILE_TANK,
	DOUBLE_MISSILE_TANK,
	FIRE_TANK 
};

///////////////////////////////////////////
//TEnemyTank类
//	敌军坦克类
class TEnemyTank : public TSprite
{
	int m_nType;			//坦克类
	static EPG m_epg[3];	//坦克图像
public:
	//加载坦克图像资源
	static BOOL LoadPicture(LPCSTR epgfile,ENEMY_TANK nType,EDataFile * pDat);

	//释放坦克图像资源
	static void Destroy();

	//移动坦克
	virtual void Move();

	//画坦克
	virtual void Draw();

	//取得边框
	virtual void GetRect(RECT& rc);

	//被其它碰撞是否有效?
	virtual BOOL HitBy(TObject * pObj);

	TEnemyTank(int x,int y,int nType);
};

inline BOOL TEnemyTank::LoadPicture(LPCSTR epgfile,ENEMY_TANK nType,EDataFile * pDat)
{
	return m_epg[nType].Load(epgfile,pDat);
}

inline void TEnemyTank::Destroy()
{
	m_epg[0].Destroy();
	m_epg[1].Destroy();
	m_epg[2].Destroy();
}

/////////////////////////////////////////////////////////////////////
//定义玩家坦克类型
enum PLAYER_TANK { GREEN_TANK=0,WHITE_TANK=1,GOLD_TANK=2};

/////////////////////////////////////////
//TPlayerTank
//	玩家坦克类
class TPlayerTank : public TSprite
{
public:
	int m_nType;		//玩家坦克类型
	int m_nExper;		//玩家的经验值
	int m_nMoney;		//玩家的钱数
	int m_nMaxShield ;	//玩家最大的防护值

	static EPG m_epg[3];	//玩家图像资源
public:
	TPlayerTank(int x,int y,int nType);

	virtual void Move();

	virtual void Draw();

	virtual void GetRect(RECT& rc);

	virtual BOOL HitBy(TObject * pObj);

	//////////////////////////////////////
	//加载图像资源
	static BOOL LoadPicture(LPCSTR epgfile,PLAYER_TANK nType,EDataFile * pDat);

	///////////////////////////////////////
	//释放图像资源
	static void Destroy();
};

inline BOOL TPlayerTank::LoadPicture(LPCSTR epgfile,PLAYER_TANK nType,EDataFile * pDat)
{
	return m_epg[nType].Load(epgfile,pDat);
}

inline void TPlayerTank::Destroy()
{
	m_epg[0].Destroy();
	m_epg[1].Destroy();
	m_epg[2].Destroy();
}

#endif // !defined(AFX_TTANK_H__FA81864A_3055_4AD5_91B4_C570CF79BDC0__INCLUDED_)

⌨️ 快捷键说明

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