本文整理汇总了C++中CMonster::GetStopFrame方法的典型用法代码示例。如果您正苦于以下问题:C++ CMonster::GetStopFrame方法的具体用法?C++ CMonster::GetStopFrame怎么用?C++ CMonster::GetStopFrame使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CMonster
的用法示例。
在下文中一共展示了CMonster::GetStopFrame方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: RandomRun
bool MonsterAI::RandomRun()
{
CMonster *monster = static_cast<CMonster*>(GetOwner());
if (monster == NULL)
{
LogError(AI_MODULE, "MosterAI has no owner object...");
}
assert(monster);
if(random(10000) < monster->GetMoveRandomValue())
{
long dir = 0;
long curX = monster->GetTileX();
long curY = monster->GetTileY();
long dis = monster->Distance(curX, curY, m_BornPos.x, m_BornPos.y);
if(dis > monster->GetPeaceMoveRange())
{
dir = GetLineDir(curX, curY, m_BornPos.x, m_BornPos.y);
long gdir = (8 - dir) % 8;
if(gdir >= 2 || gdir <= 6)
{
dir = (dir + random(3) - 1 + 8) % 8;
}
}
else
{
dir = random(8);
}
long maxRunTimes = monster->GetMaxRunTimes();
long minRunTimes = monster->GetMinRunTimes();
AI_EVENT_SENDER(this).MoveByStep(dir, random(maxRunTimes - minRunTimes) + minRunTimes);
// drive the ai
Resume(0);
}
else
{
Stand(monster->GetStopFrame());
}
return true;
}
示例2: Execute
void SummonPeaceState::Execute(BaseType::EntityType *entity)
{
if (entity == NULL)
{
LogError(AI_MODULE, "entity is null.");
return;
}
if(SearchEnemy(entity))
{
return;
}
/// Stand ... Don't move
MonsterAI *ai = static_cast<MonsterAI*>(entity);
CMonster *monster = static_cast<CMonster*>(entity->GetOwner());
if (monster == NULL)
{
LogError(AI_MODULE, "MonsterAI do not have owner.");
}
assert(ai && monster);
ai->Stand(monster->GetStopFrame());
}