📄 unittemplateclasses.h
字号:
#ifndef HEADER_UNITCLASSES
#define HEADER_UNITCLASSES
#include <stdio.h>
#include <windows.h>
#include <D3DX9.h>
//-------------------------------------------------------
//
// DEFENSE CLASS
//
//-------------------------------------------------------
class CUnitDefense
{
public:
int m_iType;
unsigned int m_iMissileArmorRating;
unsigned int m_iBulletArmorRating;
unsigned int m_iLaserArmorRating;
unsigned int m_iMeleeArmorRating;
unsigned int m_iHitPoints;
unsigned int m_iRegenRate;
char m_szName[ 64 ];
public:
CUnitDefense();
~CUnitDefense();
virtual void vReset( void );
};
//-------------------------------------------------------
//
// OFFENSE CLASS
//
//-------------------------------------------------------
class CUnitOffense
{
public:
int m_iType;
unsigned int m_iMissileDamageRating;
unsigned int m_iBulletDamageRating;
unsigned int m_iLaserDamageRating;
unsigned int m_iMeleeDamageRating;
unsigned int m_iSplashRadius;
unsigned int m_iRateOfFire;
float m_fProjectileSpeed;
unsigned int m_iRange;
char m_szName[ 64 ];
public:
CUnitOffense();
~CUnitOffense();
virtual void vReset( void );
};
//-------------------------------------------------------
//
// MOVEMENT CLASS
//
//-------------------------------------------------------
class CUnitMovement
{
public:
int m_iType;
float m_fMovementSpeed;
unsigned int m_iMovementType;
float m_fAcceleration;
float m_fDeacceleration;
float m_fTurnSpeed;
char m_szName[ 64 ];
public:
CUnitMovement();
~CUnitMovement();
virtual void vReset( void );
};
//-------------------------------------------------------
//
// TEXTURE CLASS
//
//-------------------------------------------------------
class CTexture
{
public:
// Texture name
char m_szName[ 64 ];
// Texture pointer
LPDIRECT3DTEXTURE9 m_pTexture;
// Direct 3D Pointer for loading textures
LPDIRECT3DDEVICE9 m_pd3dDevice;
CTexture();
~CTexture();
virtual void vLoad( char *szName );
virtual void vRelease( void );
virtual void vSetRenderDevice( LPDIRECT3DDEVICE9 pd3d );
};
//-------------------------------------------------------
//
// ANIMATION CLASS
//
//-------------------------------------------------------
const int UNITMANAGER_MAXOWNERS = 4;
class CUnitAnimation
{
public:
char m_szName[ 64 ];
char m_szBitmapPrefix[ 64 ];
int m_iNumStillFrames;
int m_iNumMoveFrames;
int m_iNumAttackFrames;
int m_iNumDieFrames;
int m_iType;
int m_iStartStillFrames;
int m_iStartMoveFrames;
int m_iStartAttackFrames;
int m_iStartDieFrames;
// Texture data
CTexture *m_Textures;
int m_iTotalTextures;
// Direct 3D Pointer for loading textures
LPDIRECT3DDEVICE9 m_pd3dDevice;
CUnitAnimation();
~CUnitAnimation();
virtual void vReset( void );
virtual void vSetRenderDevice( LPDIRECT3DDEVICE9 pd3d );
virtual void vLoadTextures( void );
};
//-------------------------------------------------------
//
// UNIT CLASS
//
//-------------------------------------------------------
class CUnit
{
public:
CUnitDefense *m_Defense;
CUnitOffense *m_Offense1;
CUnitOffense *m_Offense2;
CUnitOffense *m_Offense3;
CUnitMovement *m_Movement;
CUnitAnimation *m_Animation;
int m_iType;
int m_iCurHitPoints;
float m_fCurSpeed;
float m_fXPos;
float m_fYPos;
float m_fRot;
float m_fScale;
int m_iUnitID;
int m_iParentID;
char m_szName[ 64 ];
bool m_bActive;
int m_iOwner;
int m_iCurAnimFrame;
int m_iCurAttackFrame;
int m_iCurStillFrame;
int m_iCurMoveFrame;
int m_iCurDieFrame;
public:
CUnit();
~CUnit();
virtual void vReset( void );
virtual void vSetBaseValues( CUnitDefense* ptrDef,
CUnitOffense* ptrOff1,
CUnitOffense* ptrOff2,
CUnitOffense* ptrOff3,
CUnitMovement* ptrMove,
CUnitAnimation* ptrAnim );
virtual void vSetPosition( float fX, float fY );
};
//-------------------------------------------------------
//
// UNIT MANAGER CLASS
//
//-------------------------------------------------------
const int UNITMANAGER_MAXBASEOBJS = 256;
const int UNITMANAGER_MAXUNITS = 1024;
class CUnitManager
{
public:
CUnitDefense *m_DefenseObjs;
CUnitOffense *m_OffenseObjs;
CUnitMovement *m_MovementObjs;
CUnitAnimation *m_AnimationObjs;
CUnit *m_UnitBaseObjs;
CUnit *m_UnitObjs;
int m_iTotalDefObjs;
int m_iTotalOffObjs;
int m_iTotalMovObjs;
int m_iTotalAnimationObjs;
int m_iTotalUnitBaseObjs;
int m_iTotalUnitObjs;
int m_iOwnerTotal[ UNITMANAGER_MAXOWNERS ];
// Direct 3D Pointer for loading textures
LPDIRECT3DDEVICE9 m_pd3dDevice;
CUnitManager();
~CUnitManager();
virtual void vSetRenderDevice( LPDIRECT3DDEVICE9 pd3d );
virtual void vReset( void );
virtual void vClearMem( void );
virtual int iLoadBaseTypes( char *szDefFileName,
char *szOffFileName,
char *szMovFileName,
char *szUnitFileName,
char *szAnimFileName );
virtual CUnitDefense* ptrGetDefenseType( char *szName );
virtual CUnitOffense* ptrGetOffenseType( char *szName );
virtual CUnitMovement* ptrGetMoveType( char *szName );
virtual CUnitAnimation* ptrGetAnimType( char *szName );
virtual int iAddUnit( char *szName, int iOwner );
virtual void vRemoveUnit( int iUnitID );
virtual int iCountTotalTextures( void );
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -