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

📄 object.cpp

📁 VC游戏编程基础
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		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 + -