本文整理汇总了C++中Battlefield::CalculateNextFight方法的典型用法代码示例。如果您正苦于以下问题:C++ Battlefield::CalculateNextFight方法的具体用法?C++ Battlefield::CalculateNextFight怎么用?C++ Battlefield::CalculateNextFight使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Battlefield
的用法示例。
在下文中一共展示了Battlefield::CalculateNextFight方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Act
void Player::Act(Directions input_dir)
{
Field *currentField = _position;
Field *nextField = currentField;
Field *targetField = GetTargetField();
Battlefield *btl = _game->GetBattlefield();
nextField = btl->GetNextField(currentField, input_dir);
if (nextField != nullptr) //if we're moving somewhere
{
if (nextField == targetField) //where our target is
{
btl->Fight(this, targetField->GetEnemy(), true); //Kill'em!
if ( HaveTarget() ) btl->CalculateNextFight(); //if enemy still alive
}
else //if target was somewhere else
{
SetTargetField(nullptr); //forget about it
if (nextField->HaveEnemy())
{
SetTargetField(nextField); // select new target if any
btl->CalculateNextFight();
}
else if (nextField->HavePowerup())
{
_game->GetDisplay()->SendEvent( TakePowerup(nextField) );
}
else
{
_position = nextField; //if there's no enemy - move there and look around
LookAround();
}
}
}
}