📄 tank1.h
字号:
// Tank1.h: interface for the CTank class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_TANK1_H__1BBBE5C8_0B87_48BC_84F2_F69FC88FD3C3__INCLUDED_)
#define AFX_TANK1_H__1BBBE5C8_0B87_48BC_84F2_F69FC88FD3C3__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "TankMap.h"
#include "Tank_Defs.h" // Added by ClassView
#include "NormalBullet.h"
class CTank
{
public:
public:
BOOL DownCanGo();
BOOL HasBlock(int sx,int sy,int ex,int ey);
void Init(CGame* pGame,int X,int Y,LPDIRECTDRAWSURFACE Tankbmp,LPDIRECTDRAWSURFACE TankStatebmp,int nSkin=0);
Obj HasObject(int xpos,int ypos);
void DrawTank(LPDIRECTDRAWSURFACE pdds);
void DestroyTank();
BOOL TankMove2(TankDirection direction);
Result IsWhat(TankDirection direction);
void SetGame(CGame* pGame=NULL);
void SetTankPos(int x,int y);
void SetBullet(); //设置子弹的类型
CTank();
virtual ~CTank();
void SetTankBmp(LPDIRECTDRAWSURFACE bmp){m_bmpTank=bmp;}
LPDIRECTDRAWSURFACE GetTankBmp(){return m_bmpTank;}
void SetTankStateBmp(LPDIRECTDRAWSURFACE bmp){m_bmpTankState=bmp;}
LPDIRECTDRAWSURFACE GetTankStateBmp(){return m_bmpTankState;}
void Shoot();
TankDirection GetDirection()const{return m_nDirection;}
void SetDirection(TankDirection direction){m_nDirection=direction;}
void AddTankSpeed(){m_nTankSpeed=min(m_nTankSpeed+1,4);}
int SetTankLife(int life)
{
if(life>=0)m_nTankLife=life;
else m_nTankLife=0;
return m_nTankLife;
}
int GetTankLife(){return m_nTankLife;}
void TankMove();
int GetX()const{return m_nX;}
int GetY()const{return m_nY;}
int GetBulletSpeed(){return m_Normal->GetSpeed();}
BOOL m_bindex;
CRect rect;
int m_nFireSpeed;
inline void SetRect(){rect.SetRect(x,y,x+TANKWIDTH,y+TANKHEIGHT);}
inline int Getx(){return x;}
inline int Gety(){return y;}
inline void SetSkin(int nSkin=0);
inline int GetSkin(){return m_nSkin;}
private:
int m_nDoubleBullet; //设置子弹单发、双发,还是多发 默认为单发 1--单, 2--双发,3--3发,最多3发
TankDirection m_nDirection;
int m_nX;
int m_nY;
int x;
int y;
int m_nTankSpeed;
int m_nTankLife;
int m_nSkin;
int m_nDamage; //子弹威力
int tempDamage; //用来作为临时变量保存子弹威力
CGame* m_pGame;
CNormalBullet * m_Normal; //设定子弹
LPDIRECTDRAWSURFACE m_bmpTank;
LPDIRECTDRAWSURFACE m_bmpTankState;
int m_nStep;
int sort; //子弹的类型
int number; //特殊子弹的弹药数
private:
BOOL HeadHaveTank(TankDirection dir);
BYTE Belong(); //判断该坦克是player还是npc 1:LFET-PLAYER,2:RIGHT-PLAYER,3:NPC
int MapxyTonXnY();
void SetCell(Cell type,BYTE mask=0);
};
#endif // !defined(AFX_TANK1_H__1BBBE5C8_0B87_48BC_84F2_F69FC88FD3C3__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -