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

📄 bullet.h

📁 在vc 6.0环境下的一个坦克小游戏
💻 H
字号:
// Bullet.h: interface for the CBullet class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_BULLET_H__B5E6C45D_3C68_4CF3_B36A_A062FCEC8ED5__INCLUDED_)
#define AFX_BULLET_H__B5E6C45D_3C68_4CF3_B36A_A062FCEC8ED5__INCLUDED_



#include "Tank_Defs.h"	// Added by ClassView
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000


const int START=1;
const int MIDDLE=2;
const int END=3;

class CGame;
//##ModelId=3EBA49A3029F
class CBullet 
/****************************************************************
*基类															*
*归纳各种子弹的共性,并提供纯虚函数接口							*	
****************************************************************/  
{
public:
	//##ModelId=3EBA49A30303
	CBullet();
	//##ModelId=3EBA49A30302
	virtual ~CBullet();
	
public:
	//##ModelId=3EBA49A30300
	void DestroyObj(Obj &object);
	//##ModelId=3EBA49A302FD
	Obj HasObject(int xpos,int ypos);
	//##ModelId=3EBA49A302F5
	void SetBulletBmp(LPDIRECTDRAWSURFACE bmp);
	//##ModelId=3EBA49A302F3
	void CBullet::DrawBullet(LPDIRECTDRAWSURFACE pdds);
	//##ModelId=3EBA49A302F0
	void SetPosition(int n,int m);
	//##ModelId=3EBA49A302EF
	int MapxyTonXnY();
	//##ModelId=3EBA49A302E6
	Result IsWhat(int xt,int yt);//从地图里面判断前方是什么
	//##ModelId=3EBA49A302E4
	BOOL ChangeColor(COLORREF x=0x00000000ff);			 //改变颜色
	//##ModelId=3EBA49A302E3
    virtual	BOOL BulletTrack()=0;						 //各种子弹的弹道
	//##ModelId=3EBA49A302E1
	BOOL BulletAnimate(int state=START);				 //各种子弹得动画(三阶段:出发,飞行途中,击中)
	//##ModelId=3EBA49A302DF
	void SetSpeed(int speed=4){m_nSpeed=speed;}
	//##ModelId=3EBA49A302D7
	void SetDamage(int n=50){m_nDamage=n;}
	//##ModelId=3EBA49A302D6
	int GetDamage()const{return m_nDamage;}
	//##ModelId=3EBA49A302D5
	int GetSpeed(){return m_nSpeed;}
	//##ModelId=3EBA49A302BF
	CRect rect;
	//##ModelId=3EBA49A302D4
	void SetRect(){rect.SetRect(x,y,x+BULLETWIDTH,y+BULLETHEIGHT);}
	//##ModelId=3EBA49A302D2
	inline void SetDirection(TankDirection direction){m_nDirection=direction;}
	//##ModelId=3EBA49A302D0
	inline void SetGame(CGame * pGame){ m_pGame=pGame;}
	//##ModelId=3EBA49A302CF
	inline int Getx(){return x;}
	//##ModelId=3EBA49A302CE
	inline int Gety(){return y;}
	//##ModelId=3EBA49A302C4
	inline void SetBelong(BYTE a){Belong=a;}
	//##ModelId=3EBA49A302C2
	inline void Setx(int m){x=m;}  //以下两种方法主要针对子弹双发而设置
	//##ModelId=3EBA49A302C0
	inline void Sety(int n){y=n;}

protected:
	//##ModelId=3EBA49A302BC
	LPDIRECTDRAWSURFACE m_bmpBullet;
	//##ModelId=3EBA49A302B9
	CString strMsg;
	//##ModelId=3EBA49A302B6
	CGame *m_pGame;
	//##ModelId=3EBA49A302B1
	TankDirection m_nDirection;
	//##ModelId=3EBA49A302A5
	int m_nSpeed;  //用来记录子弹速度基数
	//##ModelId=3EBA49A302A4
	int m_nX;      //记录子弹的x位置--以中轴线为基准
	//##ModelId=3EBA49A302A3
	int m_nY;      //记录子弹的y位置
	int x,y;       //对应象素坐标
	//##ModelId=3EBA49A302A2
	int m_nDamage; //记录子弹伤害力
	//##ModelId=3EBA49A302A1
	int index;     //标定是那一种子弹
	//##ModelId=3EBA49A302A0
	BYTE Belong;   //标定子弹的出处/* 3,NPC、1,left-play、2,right-play*/

};

#endif // !defined(AFX_BULLET_H__B5E6C45D_3C68_4CF3_B36A_A062FCEC8ED5__INCLUDED_)

⌨️ 快捷键说明

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