本文整理汇总了C++中CCopyEntity::Act方法的典型用法代码示例。如果您正苦于以下问题:C++ CCopyEntity::Act方法的具体用法?C++ CCopyEntity::Act怎么用?C++ CCopyEntity::Act使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CCopyEntity
的用法示例。
在下文中一共展示了CCopyEntity::Act方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Act
void CBE_GeneralEntity::Act(CCopyEntity* pCopyEnt)
{
float frametime = m_pStage->GetFrameTime();
if( m_sGEAttribute & GETYPE_LIFETIMER )
{
float& rfLifeTimer = LifeTimer(pCopyEnt);
rfLifeTimer -= frametime;
if( rfLifeTimer <= 0.0f )
{
// lifetime has expired - terminate the entity
if( 0 < strlen(m_Explosion.GetBaseEntityName()) )
{
// create explosion animation
m_pStage->CreateEntity( m_Explosion, pCopyEnt->GetWorldPosition(), Vector3(0,0,0), pCopyEnt->GetDirection() );
}
m_pStage->TerminateEntity( pCopyEnt );
return;
}
}
if( pCopyEnt->bNoClip
&& !(pCopyEnt->GetEntityFlags() & BETYPE_RIGIDBODY) )
{
// TODO: pose update for collidable enitity
pCopyEnt->SetWorldPosition( pCopyEnt->GetWorldPosition() + pCopyEnt->Velocity() * frametime );
}
// if( 0 < strlen(m_SmokeTrace.GetBaseEntityName()) )
if( 0 < m_vecSmokeTrail.size() )
{
int i, num = (int)m_vecSmokeTrail.size();
for( i=0; i<num; i++ )
{
CCopyEntity* pSmokeTrace = pCopyEnt->GetChild(i);
if( IsValidEntity( pSmokeTrace ) )
pSmokeTrace->Act(); // update smoke trace
}
}
if( pCopyEnt->GetEntityFlags() & BETYPE_ENVMAPTARGET )
{
}
/** if( pCopyEnt->GetChild(0) )
pCopyEnt->GetChild(0)->Act();**/
}