一个另类的坦克大战源程序
源代码在线查看: tobject.h
软件大小: |
3960 K |
上传用户: |
car_bike2000000 |
|
|
关键词: |
源程序
|
下载地址: |
免注册下载 普通下载
|
|
// TObject.h: interface for the TObject class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_TOBJECT_H__076A19C6_24F0_4F8A_817E_CDC031D9DE43__INCLUDED_)
#define AFX_TOBJECT_H__076A19C6_24F0_4F8A_817E_CDC031D9DE43__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "TankWar.h"
///////////////////////////////////////////////////////////////
//定义对象类型
enum CLASS_TYPE {
CLASS_TBONUS,
CLASS_TPLAYERTANK,
CLASS_TOBSTACLE,
CLASS_TBULLET,
CLASS_TENEMYTANK,
CLASS_TEXPLODE
};
/////////////////////////////////////////////////////////
//TObject 类
class TObject
{
protected:
int m_nX,m_nY; //对象的坐标
CLASS_TYPE m_nClassType; //对象类型
DWORD m_dwLastTickCount; //最近的时间滴
DWORD m_dwDelayTimer; //延时时间
BOOL m_bIsDead; //死亡标志
public:
TObject(int x,int y,CLASS_TYPE nClassType);
virtual ~TObject();
///////////////////////////////////////////////////
//以下三个纯虚函数必须在所有的派生类中实现
virtual void Move()=0; //移动对象
virtual void Draw()=0; //画对象
virtual void GetRect(RECT& rect)=0; //取得对象的边框
/////////////////////////////////////////////////
//对象pObj对该对象的碰撞是否有效
virtual BOOL HitBy(TObject * pObj){return FALSE;};
////////////////////////////////////////
//死了
void Dead() { m_bIsDead=TRUE;}
////////////////////////////////////////
//是不是死了?
BOOL IsDead(){return(m_bIsDead);}
///////////////////////////////////////////////
//设置对象坐标
void SetXY(int x,int y) { m_nX = x,m_nY = y;}
//返回对象坐标
INT GetX() { return m_nX; }
INT GetY() { return m_nY; }
///////////////////////////////////
//是否撞到其它对象了?
BOOL HitTest(TObject* object);
//////////////////////////////////////
//是不是该我动了?
BOOL IsMyTime();
////////////////////////////////////////////////
//设置延时时间
void SetDelayTimer(DWORD dwDelayTimer){m_dwDelayTimer=dwDelayTimer;}
////////////////////////////////////////////////
//返回延时间
DWORD GetDelayTimer(){return m_dwDelayTimer;}
////////////////////////////////////////////////////
//返回对象类型
CLASS_TYPE ClassType(){return m_nClassType;}
};
#endif // !defined(AFX_TOBJECT_H__076A19C6_24F0_4F8A_817E_CDC031D9DE43__INCLUDED_)