📄 object.cpp
字号:
m_dwObjStat = OBJSTAT_DIE;
m_nTotalFrame = 2;
m_nCurrentFrame = 0;
// m_nPersistTime = 100;
if ( m_obkTank->GetStat() & OBJSTAT_LIVE )
m_obkTank->RemoveBullet();
} else if ( m_dwObjStat == OBJSTAT_DIE ) {
if ( --m_nStatCounter == 0 )
m_dwObjStat = OBJSTAT_CADAVER;
}
}
//-----------------------------------------------------------------------------
// Name:
// Desc:
//-----------------------------------------------------------------------------
void CObjBullet::Hit( CObjTank *ptk ) {
NextStat();
ptk->Hited( GetAttack() );
}
//-----------------------------------------------------------------------------
// Name:
// Desc:
//-----------------------------------------------------------------------------
void CObjBullet::Hit( CObjBullet *pblt ) {
NextStat();
pblt->NextStat();
}
//-----------------------------------------------------------------------------
// Name:
// Desc:
//-----------------------------------------------------------------------------
CObjEffect::CObjEffect() {
m_dwEffect = EFFECT_NONE;
m_nAttack = 0;
}
//-----------------------------------------------------------------------------
// Name:
// Desc:
//-----------------------------------------------------------------------------
CObjEffect::~CObjEffect() {
}
//-----------------------------------------------------------------------------
// Name:
// Desc:
//-----------------------------------------------------------------------------
void CObjEffect::CreateEffect( CObject *pobj ) {
DWORD type = pobj->GetType();
m_dwObjStat = OBJSTAT_LIVE;
if ( type == OBJTYPE_TANK ) {
m_dwEffect = EFFECT_TANKBOOM;
m_dwObjType = OBJTYPE_EFFECT;
m_nLeft = pobj->GetLeft();
m_nTop = pobj->GetTop();
m_nWidth = g_FrameSmall;
m_nHeight = g_FrameSmall;
m_nTotalFrame = 3;
m_nCurrentFrame = 0;
m_dwPersistTime = 100;
}
}
//-----------------------------------------------------------------------------
// Name:
// Desc:
//-----------------------------------------------------------------------------
CObjBase::CObjBase() {
}
//-----------------------------------------------------------------------------
// Name:
// Desc:
//-----------------------------------------------------------------------------
CObjBase::~CObjBase() {
}
//-----------------------------------------------------------------------------
// Name:
// Desc:
//-----------------------------------------------------------------------------
void CObjBase::CreateBase( int x, int y, bool bHome ) {
m_bHome = bHome;
if ( m_bHome )
m_uiTeamType = TEAM_HOME;
else
m_uiTeamType = TEAM_ENEMY;
m_dwObjType = OBJTYPE_BASE;
m_dwObjStat = OBJSTAT_LIVE;
m_nWidth = 32;
m_nHeight = 32;
m_nLeft = x;
m_nTop = y;
m_nMoveStep = 0;
m_uiDirection = DIR_NONE;
m_ptyBlood.CreateProperty( 40, 40, 0 );
}
//-----------------------------------------------------------------------------
// Name:
// Desc:
//-----------------------------------------------------------------------------
RECT CObjBase::GetSurroundRect() {
RECT rt = GetRect();
rt.left -= 16;
rt.right += 16;
rt.top -= 16;
rt.bottom += 16;
if ( rt.top < 0 )
rt.top = 0;
if ( rt.bottom > g_FrameHeight )
rt.bottom = g_FrameHeight;
return rt;
}
//-----------------------------------------------------------------------------
// Name:
// Desc:
//-----------------------------------------------------------------------------
CObjBlock::CObjBlock() {
m_nbx = -1;
m_nby = -1;
m_nLand = LAND_NONE;
}
//-----------------------------------------------------------------------------
// Name:
// Desc:
//-----------------------------------------------------------------------------
void CObjBlock::CreateObjBlock( int x, int y, int land )
{
m_nbx = x;
m_nby = y;
m_nLand = land;
m_dwObjType = OBJTYPE_BLOCK;
m_dwObjStat = OBJSTAT_LIVE;
m_nTotalFrame = 3;
m_nCurrentFrame = 0;
m_dwPersistTime = 200;
m_nWidth = 32;
m_nHeight = 32;
m_nLeft = x<<5;
m_nTop = y<<5;
}
//-----------------------------------------------------------------------------
// Name:
// Desc:
//-----------------------------------------------------------------------------
CObjBlock::~CObjBlock() {
}
//-----------------------------------------------------------------------------
// Name:
// Desc:
//-----------------------------------------------------------------------------
CObjFood::CObjFood() {
m_dwObjType = OBJTYPE_FOOD;
m_dwObjStat = OBJSTAT_LIVE;
m_nTotalFrame = 0;
m_nCurrentFrame = 0;
m_dwPersistTime = 0;
m_nWidth = 32;
m_nHeight = 32;
m_bPresent = false;
m_bExsit = false;
}
//-----------------------------------------------------------------------------
// Name:
// Desc:
//-----------------------------------------------------------------------------
CObjFood::~CObjFood() {
}
//-----------------------------------------------------------------------------
// Name:
// Desc:
//-----------------------------------------------------------------------------
void CObjFood::CreateFood( DWORD type, int left, int top ) {
m_bExsit = true;
m_bPresent = true;
m_dwType = type;
m_nLeft = left;
m_nTop = top;
}
//-----------------------------------------------------------------------------
// Name:
// Desc:
//-----------------------------------------------------------------------------
RECT CObjFood::GetPermitRect() {
RECT rc;
SetRect( &rc, m_nLeft+8, m_nTop+8, m_nLeft+m_nWidth-8, m_nTop+m_nHeight-8 );
return rc;
}
//-----------------------------------------------------------------------------
// Name:
// Desc:
//-----------------------------------------------------------------------------
void CObjFood::Benefit( CObjTank *ptk ) {
switch ( m_dwType ) {
case FOOD_SHIP:
ptk->m_dwEquip |= EQUIP_SHIP;
break;
case FOOD_POWERUP:
ptk->m_nAttack += 10;
break;
case FOOD_BLOODUP:
ptk->m_prtBlood.Add(10);
break;
case FOOD_SPEEDUP:
ptk->SetStep( MIN( ptk->GetStep()+2, MAXTANKSPEED ) );
break;
}
}
//-----------------------------------------------------------------------------
// Name:
// Desc:
//-----------------------------------------------------------------------------
CProperty::CProperty() {
m_nDefaultValue = 0;
m_nCurrentValue = 0;
m_nMaxValue = 0;
m_nMinValue = 0;
}
//-----------------------------------------------------------------------------
// Name:
// Desc:
//-----------------------------------------------------------------------------
CProperty::~CProperty() {
}
//-----------------------------------------------------------------------------
// Name:
// Desc:
//-----------------------------------------------------------------------------
void CProperty::CreateProperty( int def, int max, int min ) {
m_nDefaultValue = def;
m_nCurrentValue = def;
m_nMaxValue = max;
m_nMinValue = min;
}
//-----------------------------------------------------------------------------
// Name:
// Desc:
//-----------------------------------------------------------------------------
void CProperty::Add( int step ) {
m_nCurrentValue += step;
if ( m_nCurrentValue > m_nMaxValue )
m_nCurrentValue = m_nMaxValue;
}
//-----------------------------------------------------------------------------
// Name:
// Desc:
//-----------------------------------------------------------------------------
bool CProperty::Minus( int step ) {
m_nCurrentValue -= step;
if ( m_nCurrentValue <= m_nMinValue ) {
m_nCurrentValue = m_nMinValue;
return false;
}
return true;
}
//-----------------------------------------------------------------------------
// Name:
// Desc:
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// Name:
// Desc:
//-----------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -